home *** CD-ROM | disk | FTP | other *** search
- unit MvAlUnit;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, Menus;
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- Button4: TButton;
- PopupMenu1: TPopupMenu;
- AlignLeft1: TMenuItem;
- AlignTop1: TMenuItem;
- AlignRight1: TMenuItem;
- AlignBottom1: TMenuItem;
- 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);
- procedure AlignLeft1Click(Sender: TObject);
- procedure AlignTop1Click(Sender: TObject);
- procedure AlignRight1Click(Sender: TObject);
- procedure AlignBottom1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- Xdiff : integer;
- Ydiff : integer;
- LeftBtnClicked : boolean;
- Moving : boolean;
- TriggerBtn : TButton;
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
-
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Moving := false;
- LeftBtnClicked := false;
- TriggerBtn := Button1;
- 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
- else TriggerBtn := TButton(Sender);
- 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;
-
- procedure TForm1.AlignLeft1Click(Sender: TObject);
- var
- i : integer;
- begin
- for i := 0 to ComponentCount - 1 do
- if Components[i] is TButton then
- TButton(Components[i]).Left := TriggerBtn.Left;
- end;
-
- procedure TForm1.AlignTop1Click(Sender: TObject);
- var
- i : integer;
- begin
- for i := 0 to ComponentCount - 1 do
- if Components[i] is TButton then
- TButton(Components[i]).Top := TriggerBtn.Top;
- end;
-
- procedure TForm1.AlignRight1Click(Sender: TObject);
- var
- i : integer;
- RightEdge : integer;
- begin
- RightEdge := (TriggerBtn.Left + TriggerBtn.Width);
- for i := 0 to ComponentCount - 1 do
- if Components[i] is TButton then
- TButton(Components[i]).Left := RightEdge - TButton(Components[i]).Width;
- end;
-
- procedure TForm1.AlignBottom1Click(Sender: TObject);
- var
- i : integer;
- BottomEdge : integer;
- begin
- BottomEdge := (TriggerBtn.Top + TriggerBtn.Height);
- for i := 0 to ComponentCount - 1 do
- if Components[i] is TButton then
- TButton(Components[i]).Top := BottomEdge - TButton(Components[i]).Height;
- end;
-
- end.
-