模拟delphi编辑窗体操作控件

746496111

746496111

2016-02-19 19:57

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是模拟delphi编辑窗体操作控件,一起来学习了解下吧!
 

  unit Unit1;

  interface

  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, StdCtrls, jpeg;
  const LMouseDown=False;
  type
    TForm1 = class(TForm)
      Edit1: TEdit;
      Panel2: TPanel;
      Panel1: TPanel;
      Panel3: TPanel;
      Panel4: TPanel;
      Panel5: TPanel;
      Panel6: TPanel;
      Panel7: TPanel;
      Panel8: TPanel;
      Panel11: TPanel;
      Panel22: TPanel;
      Panel33: TPanel;
      Panel44: TPanel;
      Panel55: TPanel;
      Panel66: TPanel;
      Panel77: TPanel;
      Panel88: TPanel;
      Button1: TButton;
      procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
        Y: Integer);
      procedure Edit1MouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
      procedure Edit1MouseUp(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
      procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
      procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
      procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
        Y: Integer);
      procedure Button1MouseUp(Sender: TObject; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer);
    private
      { Private declarations }
    public
      { Public declarations }
    end;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  var
    Form1: TForm1;
    s,a:boolean;
  implementation

  {$R *.dfm}

   procedure ManipulateControl(Control: TControl; Shift: TShiftState; X, Y, Precision: integer);
  var SC_MANIPULATE: Word;
  begin
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的最左侧**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         if (X=Precision) and (YPrecision) and (YControl.Height-Precision)
    then begin
           SC_MANIPULATE  := $F001;
           Control.Cursor := crSizeWE;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的最右侧**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X=Control.Width-Precision) and (YPrecision) and (YControl.Height-Precision)
    then begin
           SC_MANIPULATE  := $F002;
           Control.Cursor := crSizeWE;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的最上侧**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (XPrecision) and (XControl.Width-Precision) and (Y=Precision)
    then begin
           SC_MANIPULATE  := $F003;
           Control.Cursor := crSizeNS;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的左上角**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X=Precision) and (Y=Precision)
    then begin
           SC_MANIPULATE  := $F004;
           Control.Cursor := crSizeNWSE;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的右上角**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X=Control.Width-Precision) and (Y=Precision)
    then begin
           SC_MANIPULATE  := $F005;
           Control.Cursor := crSizeNESW    ;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的最下侧**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (XPrecision) and (XControl.Width-Precision) and (Y=Control.Height-Precision)
    then begin
           SC_MANIPULATE  := $F006;
           Control.Cursor := crSizeNS;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的左下角**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X=Precision) and (Y=Control.Height-Precision)
    then begin
           SC_MANIPULATE  := $F007;
           Control.Cursor := crSizeNESW;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的右下角**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X=Control.Width-Precision) and (Y=Control.Height-Precision)
    then begin
           SC_MANIPULATE  := $F008;
           Control.Cursor := crSizeNWSE;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光标在控件的客户区(移动整个控件)******************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X5) and (Y5) and (XControl.Width-5) and (YControl.Height-5)
    then begin
           SC_MANIPULATE  := $F009;
           Control.Cursor := crSizeAll;
         end
    else begin
           SC_MANIPULATE := $F000;
           Control.Cursor := crDefault;
         end;
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if Shift=[ssLeft] then
    begin
      ReleaseCapture;
      Control.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
    end;
    end;
  procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
  begin
    ManipulateControl((Sender as TControl), Shift, X, Y, 9);
    edit1.Hint:='Edit1:TEdit'+chr(13)+'Origin:'+IntToStr(edit1.Top)+','
    +IntToStr(edit1.Left)+';'+'Size:'+IntToStr(edit1.Width)+IntToStr(edit1.Height)+chr(13)+'Tab Stop:Ture;Order:0';
          if s=true then
          begin
          a:=false;
          panel1.Visible:=true;      panel2.Visible:=true;     panel3.Visible:=true;
          panel4.Visible:=true;      panel5.Visible:=true;
          panel6.Visible:=true;      panel7.Visible:=true;     panel8.Visible:=true;
          panel1.top:=edit1.Top-6;
          panel1.Left:=edit1.Left-6;
          panel2.Top:=edit1.Top+(edit1.Height div 2)-3;
          panel2.Left:=edit1.Left-6;
          panel3.Top:=edit1.Top+edit1.Height;
          panel3.Left:=edit1.Left-6;
          panel4.Top:=edit1.top-6;
          panel4.Left:=edit1.Left+(edit1.Width div 2);
          panel5.Top:=edit1.Top+edit1.Height;
          panel5.Left:=edit1.Left+(edit1.Width div 2);
          panel6.Top:=edit1.Top-6;
          panel6.Left:=edit1.Left+edit1.Width;
          panel7.Top:=edit1.Top+(edit1.Height div 2)-3;
          panel7.Left:=edit1.Left+edit1.Width;
          panel8.top:=edit1.Top+edit1.Height;
          panel8.Left:=edit1.Left+edit1.Width;
          end;
  end;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
  begin

          panel11.Visible:=false;      panel22.Visible:=false;     panel33.Visible:=false;
          panel44.Visible:=false;      panel55.Visible:=false;
          panel66.Visible:=false;      panel77.Visible:=false;     panel88.Visible:=false;

    s:=true;
    a:=false;
          panel1.Visible:=true;      panel2.Visible:=true;     panel3.Visible:=true;
          panel4.Visible:=true;      panel5.Visible:=true;
          panel6.Visible:=true;      panel7.Visible:=true;     panel8.Visible:=true;
          panel1.top:=edit1.Top-6;
          panel1.Left:=edit1.Left-6;
          panel2.Top:=edit1.Top+(edit1.Height div 2)-3;
          panel2.Left:=edit1.Left-6;
          panel3.Top:=edit1.Top+edit1.Height;
          panel3.Left:=edit1.Left-6;
          panel4.Top:=edit1.top-6;
          panel4.Left:=edit1.Left+(edit1.Width div 2);
          panel5.Top:=edit1.Top+edit1.Height;
          panel5.Left:=edit1.Left+(edit1.Width div 2);
          panel6.Top:=edit1.Top-6;
          panel6.Left:=edit1.Left+edit1.Width;
          panel7.Top:=edit1.Top+(edit1.Height div 2)-3;
          panel7.Left:=edit1.Left+edit1.Width;
          panel8.top:=edit1.Top+edit1.Height;
          panel8.Left:=edit1.Left+edit1.Width;
  end;

  procedure TForm1.Edit1MouseUp(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
  begin
          if s=true then
          begin
          a:=false;
          s:=false;
          panel1.Visible:=true;      panel2.Visible:=true;     panel3.Visible:=true;
          panel4.Visible:=true;      panel5.Visible:=true;
          panel6.Visible:=true;      panel7.Visible:=true;     panel8.Visible:=true;
          panel1.top:=edit1.Top-6;
          panel1.Left:=edit1.Left-6;
          panel2.Top:=edit1.Top+(edit1.Height div 2)-3;
          panel2.Left:=edit1.Left-6;
          panel3.Top:=edit1.Top+edit1.Height;
          panel3.Left:=edit1.Left-6;
          panel4.Top:=edit1.top-6;
          panel4.Left:=edit1.Left+(edit1.Width div 2);
          panel5.Top:=edit1.Top+edit1.Height;
          panel5.Left:=edit1.Left+(edit1.Width div 2);
          panel6.Top:=edit1.Top-6;
          panel6.Left:=edit1.Left+edit1.Width;
          panel7.Top:=edit1.Top+(edit1.Height div 2)-3;
          panel7.Left:=edit1.Left+edit1.Width;
          panel8.top:=edit1.Top+edit1.Height;
          panel8.Left:=edit1.Left+edit1.Width;
          end;
  end;
  procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
  begin
  a:=false;
  s:=false;
          panel1.Visible:=false;      panel2.Visible:=false;     panel3.Visible:=false;
          panel4.Visible:=false;      panel5.Visible:=false;
          panel6.Visible:=false;      panel7.Visible:=false;     panel8.Visible:=false;
         //**********
          panel11.Visible:=false;      panel22.Visible:=false;     panel33.Visible:=false;
          panel44.Visible:=false;      panel55.Visible:=false;
          panel66.Visible:=false;      panel77.Visible:=false;     panel88.Visible:=false;

  end;
  procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
  begin if a=true then
          begin
          a:=false;
          s:=false;
          panel1.Visible:=false;      panel2.Visible:=false;     panel3.Visible:=false;
          panel4.Visible:=false;      panel5.Visible:=false;
          panel6.Visible:=false;      panel7.Visible:=false;     panel8.Visible:=false;

          panel11.Visible:=true;
          panel22.Visible:=true;
          panel33.Visible:=true;
          panel44.Visible:=true;
          panel55.Visible:=true;
          panel66.Visible:=true;
          panel77.Visible:=true;
          panel88.Visible:=true;
          panel11.top:=Button1.Top-6;
          panel11.Left:=Button1.Left-6;
          panel22.Top:=Button1.Top+(Button1.Height div 2)-3;
          panel22.Left:=Button1.Left-6;
          panel33.Top:=Button1.Top+Button1.Height;
          panel33.Left:=Button1.Left-6;
          panel44.Top:=Button1.top-6;
          panel44.Left:=Button1.Left+(Button1.Width div 2);
          panel55.Top:=Button1.Top+Button1.Height;
          panel55.Left:=Button1.Left+(Button1.Width div 2);
          panel66.Top:=Button1.Top-6;
          panel66.Left:=Button1.Left+Button1.Width;
          panel77.Top:=Button1.Top+(Button1.Height div 2)-3;
          panel77.Left:=Button1.Left+Button1.Width;
          panel88.top:=Button1.Top+Button1.Height;
          panel88.Left:=Button1.Left+Button1.Width;
          end;
  end;
   procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
  begin
      a:=true;
      s:=false;
          panel1.Visible:=false;      panel2.Visible:=false;     panel3.Visible:=false;
          panel4.Visible:=false;      panel5.Visible:=false;
          panel6.Visible:=false;      panel7.Visible:=false;     panel8.Visible:=false;

          panel11.Visible:=true;      panel22.Visible:=true;     panel33.Visible:=true;
          panel44.Visible:=true;      panel55.Visible:=true;
          panel66.Visible:=true;      panel77.Visible:=true;     panel88.Visible:=true;
          panel11.top:=Button1.Top-6;
          panel11.Left:=Button1.Left-6;
          panel22.Top:=Button1.Top+(Button1.Height div 2)-3;
          panel22.Left:=Button1.Left-6;
          panel33.Top:=Button1.Top+Button1.Height;
          panel33.Left:=Button1.Left-6;
          panel44.Top:=Button1.top-6;
          panel44.Left:=Button1.Left+(Button1.Width div 2);
          panel55.Top:=Button1.Top+Button1.Height;
          panel55.Left:=Button1.Left+(Button1.Width div 2);
          panel66.Top:=Button1.Top-6;
          panel66.Left:=Button1.Left+Button1.Width;
          panel77.Top:=Button1.Top+(Button1.Height div 2)-3;
          panel77.Left:=Button1.Left+Button1.Width;
          panel88.top:=Button1.Top+Button1.Height;
          panel88.Left:=Button1.Left+Button1.Width;
  end;

   procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
    Y: Integer);
  begin
    ManipulateControl((Sender as TControl), Shift, X, Y, 9);
    edit1.Hint:='Button1:TButton'+chr(13)+'Origin:'+IntToStr(Button1.Top)+','
    +IntToStr(Button1.Left)+';'+'Size:'+IntToStr(Button1.Width)+IntToStr(Button1.Height)+chr(13)+'Tab Stop:Ture;Order:0';
        
       
         if a=true then
          begin
          s:=false;
          panel1.Visible:=false;      panel2.Visible:=false;     panel3.Visible:=false;
          panel4.Visible:=false;      panel5.Visible:=false;
          panel6.Visible:=false;      panel7.Visible:=false;     panel8.Visible:=false;

          panel11.Visible:=true;      panel22.Visible:=true;     panel33.Visible:=true;
          panel44.Visible:=true;      panel55.Visible:=true;
          panel66.Visible:=true;      panel77.Visible:=true;     panel88.Visible:=true;
          panel11.top:=Button1.Top-6;
          panel11.Left:=Button1.Left-6;
          panel22.Top:=Button1.Top+(Button1.Height div 2)-3;
          panel22.Left:=Button1.Left-6;
          panel33.Top:=Button1.Top+Button1.Height;
          panel33.Left:=Button1.Left-6;
          panel44.Top:=Button1.top-6;
          panel44.Left:=Button1.Left+(Button1.Width div 2);
          panel55.Top:=Button1.Top+Button1.Height;
          panel55.Left:=Button1.Left+(Button1.Width div 2);
          panel66.Top:=Button1.Top-6;
          panel66.Left:=Button1.Left+Button1.Width;
          panel77.Top:=Button1.Top+(Button1.Height div 2)-3;
          panel77.Left:=Button1.Left+Button1.Width;
          panel88.top:=Button1.Top+Button1.Height;
          panel88.Left:=Button1.Left+Button1.Width;
          end;
  end;

  end.

展开更多 50%)
分享

猜你喜欢

模拟delphi编辑窗体操作控件

编程语言 网络编程
模拟delphi编辑窗体操作控件

Delphi实现窗体控件自由摆布

Delphi
Delphi实现窗体控件自由摆布

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VB.NET窗体操作技巧两则

vb
VB.NET窗体操作技巧两则

在Delphi中巧改窗体文件实现控件数组

编程语言 网络编程
在Delphi中巧改窗体文件实现控件数组

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Delphi中巧改窗体文件实现控件数组化

Delphi
在Delphi中巧改窗体文件实现控件数组化

关于如何操作其他窗体的控件或变量的方法

电脑网络
关于如何操作其他窗体的控件或变量的方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

八招设定Excel2007 用得更顺手

八招设定Excel2007 用得更顺手

PL0编译器TurboPascal版再现

PL0编译器TurboPascal版再现
下拉加载更多内容 ↓