程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 模擬delphi編輯窗體操作控件。。。

模擬delphi編輯窗體操作控件。。。

編輯: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;

  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 (Y>Precision) and (Y<Control.Height-Precision)
    then begin
           SC_MANIPULATE  := $F001;
           Control.Cursor := crSizeWE;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光標在控件的最右側**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X>=Control.Width-Precision) and (Y>Precision) and (Y<Control.Height-Precision)
    then begin
           SC_MANIPULATE  := $F002;
           Control.Cursor := crSizeWE;
         end
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //光標在控件的最上側**********************************************************
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    else if (X>Precision) and (X<Control.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 (X>Precision) and (X<Control.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 (X>5) and (Y>5) and (X<Control.Width-5) and (Y<Control.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;

  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.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved