Zitat von
PinKing2:
Hallo,
vielen Dank für die Antworten. Leider funktioniert das bei mir nicht.
Delphi-Quellcode:
procedure TForm2.WMMOVE(var Msg: TWMMove);
begin
Form1.Label2.Caption:= IntToStr(Top);
end;
Wenn ich Form2 bewege, wird Label2 von Form1 erst dann geändert, wenn ich
die Maustaste loslasse.
Was mache ich falsch?
Gruss,
Andy.
wm_move liefert dir die neuen Koordinaten vor der Änderung in Msg. Somit hast du die Möglichkeit diese zu beeinflussen. Left, Top .. sind zu diesem Zeitpunkt noch nicht die neuen Werte. Läßt du das Msg ohne Änderung durchgehen, werden die darin enthaltenen neuen Koordinaten für Left, Top etc. übernommen. Geändert sind die Werte erst in wm_moved. Da kannst du auf Left und Top uns Width ... zugreifen.
Also sind bei wm_move die Koordinaten in Msg nicht identisch mit den Propertys des Fensers.
Somit musst du es so machen wie ich es beschrieben hatte oder das so schreiben:
Delphi-Quellcode:
procedure TForm2.WMMOVE(var Msg: TWMMove);
begin
inherited;
Form1.Label2.Caption:= IntToStr(Top);
Application.ProcessMessages; // das mal testen, kann aber auch Probleme verursachen
end;
Gruß oki