// Der folgende
Code stellt fest, wann das Verschieben eines Fensters ...
public
{ Public-Deklarationen }
procedure OnMoving(var aMsg: TMsg); message WM_MOVING;
procedure WMNCHittest(var Msg: TWMNCHittest); message WM_NCHittest;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
xx, yy: integer;
moveflag: boolean = false;
procedure TForm1.OnMoving(var aMsg: TMsg);
begin
inherited;
if visible and not moveflag then
begin
moveflag := true;
xx := left;
yy := top;
end;
end;
procedure TForm1.WMNCHittest(var msg: TWMNCHittest);
begin
if moveflag then begin
if (left <> xx) or (top <> yy)
then // machwas, z.B.:
showmessage('Das Fenster wurde verschoben');
moveflag := false;
end;
inherited;
end;
// --------------------------------------------------- // Getestet mit RS 10.4 unter W11 // Auf Verschieben oder Größenänderung reagieren: type
TForm1 = class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
procedure WMEITHEROR(var Msg: TWMNoParams); message WM_EXITSIZEMOVE;
procedure WMSIZE(var Message: TMessage); message WM_SIZE;
procedure WMMOVE(var Message: TMessage); message WM_MOVE;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
MV: Boolean;
procedure TForm1.WMEITHEROR(var Msg: TWMNoParams);
begin
inherited;
case MV of
True:
ShowMessage('Moved');
else
ShowMessage('Sized');
end;
end;
procedure TForm1.WMSIZE(var Message: TMessage);
begin
inherited;
MV := False;
end;
procedure TForm1.WMMOVE(var Message: TMessage);
begin
inherited;
MV := True;
end;
|
Zugriffe seit 6.9.2001 auf Delphi-Ecke





