home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161b.iso / handson / archive / Issue150 / delphi / copydlph.exe / Move1 / MoveUnit1.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1998-12-16  |  1.2 KB  |  63 lines

  1. unit MoveUnit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Button1: TButton;
  12.     procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
  13.       Shift: TShiftState; X, Y: Integer);
  14.     procedure Button1Click(Sender: TObject);
  15.     procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  16.       Y: Integer);
  17.     procedure FormCreate(Sender: TObject);
  18.   private
  19.     { Private declarations }
  20.   public
  21.     { Public declarations }
  22.     Moving : boolean;
  23.   end;
  24.  
  25. var
  26.   Form1: TForm1;
  27.  
  28. implementation
  29.  
  30. {$R *.DFM}
  31.  
  32. procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  33.   Shift: TShiftState; X, Y: Integer);
  34. begin
  35.   Moving := true;
  36. end;
  37.  
  38. procedure TForm1.Button1Click(Sender: TObject);
  39. begin
  40.   ShowMessage( 'You clicked me!' );
  41.   Moving := false;
  42. end;
  43.  
  44. procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  45.   Y: Integer);
  46. const
  47.   SC_DragMove = $F012;
  48. begin
  49.   if Moving then
  50.   begin
  51.     ReleaseCapture;
  52.     Button1.perform(WM_SysCommand, SC_DragMove, 0 );
  53.     Moving := false;
  54.   end;
  55. end;
  56.  
  57. procedure TForm1.FormCreate(Sender: TObject);
  58. begin
  59.   Moving := false;
  60. end;
  61.  
  62. end.
  63.