home *** CD-ROM | disk | FTP | other *** search
- unit MoveUnit2;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, Menus;
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- Button4: TButton;
- procedure FormCreate(Sender: TObject);
- procedure AButtonMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure AButtonMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
- procedure AButtonClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- Xdiff : integer;
- Ydiff : integer;
- LeftBtnClicked : boolean;
- Moving : boolean;
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
-
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Moving := false;
- LeftBtnClicked := false;
- end;
-
- procedure TForm1.AButtonMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- if Button = mbLeft then
- begin
- LeftBtnClicked := true;
- Xdiff := X;
- Ydiff := Y;
- end;
- end;
-
- procedure TForm1.AButtonMouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
- var
- btn : TButton;
- begin
- btn := TButton(Sender);
- Caption := btn.name + ' X:' + IntToStr(X) + ' Y:' + IntToStr(Y);
- if LeftBtnClicked then
- begin
- Moving := true;
- btn.Top := btn.Top + Y - Ydiff;
- btn.Left := btn.Left + X - Xdiff;
- end;
- end;
-
- procedure TForm1.AButtonClick(Sender: TObject);
- begin
- if Not Moving then
- ShowMessage( 'You clicked: ' + TButton(Sender).name );
- Moving := false;
- LeftBtnClicked := false;
- end;
-
- end.
-