![]() |
In Form2 mitbekommen wenn Form1 bewegt wird
Hallo Miteinander,
folgende Situation: Ich habe ein Formular (Haupt-Formular) ... Darauf liegt ein Panel (alClient) Nun rufe ich ein zweites Formular auf:
Delphi-Quellcode:
Damit ich Form2 nicht aus Form1/Panel1 schieben kann, reagiere ich in
Form2 := TForm2.CreateParented(Panel1.Handle);
Form2.Show; Form2 auf die Message WM_WINDOWPOSCHANGING und unterbinde das dort. Nun müsste ich aber auch in Form2 reagieren wenn WM_WINDOWPOSCHANGING in Form1 ausgelöst wird oder einfacher: Wie löse ich Form2/WM_WINDOWPOSCHANGING aus wenn WM_WINDOWPOSCHANGING in Form1 ausgelöst wird. QuickAndDirty hab ich das so gemacht: in Form1 bei WM_WINDOWPOSCHANGING
Delphi-Quellcode:
Allerdings "hüpft" da Form2 beim bewegen von Form1.
Form2. Top := Form2.Top + 1;
Form2. Top := Form2.Top - 1; Wie kann man das besser lösen ???? mfg burn |
Re: In Form2 mitbekommen wenn Form1 bewegt wird
Reagiere einfach in form1 auf die Windows Message und sende sie auch an Form2!
|
Re: In Form2 mitbekommen wenn Form1 bewegt wird
Hatte ich auch schon probiert aber leider wusste ich dann nicht weiter
Hab mir das so gedacht -> In Form1\WM_WINDOWPOSCHANGING:
Delphi-Quellcode:
Aber was muss ich für die 2 Fragezeichen einsetzen ??
SendMessage(Form2.handle, WM_WINDOWPOSCHANGING, ?, ?)
Edit: Hab das Problem selber lösen können. Ich habe einfach in Form1\WM_WINDOWPOSCAHNGING ein SetWindowPos mit den Parametern von Form2 aufgerufen. Damit wird Form2\WM_WINDOWPOSCAHNGING ausgelöst...
Delphi-Quellcode:
procedure TForm1.WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
begin if Assigned(Form2) then begin SetWindowPos(Form2.Handle, 0, Form2.Left, Form2.Top, Form2.Width, Form2.Height,0); end; end; mfg burn |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz