Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi SendMessage > HWND darf nicht in Variable stehen (https://www.delphipraxis.net/68831-sendmessage-hwnd-darf-nicht-variable-stehen.html)

jensw_2000 6. Mai 2006 09:38


SendMessage > HWND darf nicht in Variable stehen
 
Hallo zusammen,

wenn ich eine Message "direkt" an ein anderes Formular sende kommt diese wie gewollt an.
Delphi-Quellcode:
sendmessage(Form2.Handle,WM_MyMessage,0,0);
Ich würde jetzt gern das Handle des Empfängerfensters als Variable übergenen. Leider kommt die Message dann nicht mehr bei dem anderen Formular an ...

Delphi-Quellcode:

private
  CurrentFormHandle:HWND;

procedure SendMyMessage(FormHandle:HWND);
begin
  sendmessage(FormHandle,WM_MyMessage,0,0);
end;

// Testaufruf

CurrentFormHandle:=Form2.Handle;
SendMyMessage(CurrentFormHandle);

CurrentFormHandle:=Form3.Handle;
SendMyMessage(CurrentFormHandle);

CurrentFormHandle:=Form4.Handle;
SendMyMessage(CurrentFormHandle);
Hat jemand eine Idee ?

Danke,
Jens

jensw_2000 6. Mai 2006 09:59

Re: SendMessage > HWND darf nicht in Variable stehen
 
Fehler gefunden :wall:
Es geht, wenn ich die Formulare erst anzeige und dann das CurrentFormHandle speichere ...

Delphi-Quellcode:
Form2.show;
CurrentFormHandle:=Form2.Handle;
SendMyMessage(CurrentFormHandle);

Form3.show;
CurrentFormHandle:=Form3.Handle;
SendMyMessage(CurrentFormHandle);

Form4.show;
CurrentFormHandle:=Form4.Handle;
SendMyMessage(CurrentFormHandle);

Christian Seehase 6. Mai 2006 13:02

Re: SendMessage > HWND darf nicht in Variable stehen
 
Moin Jens,

eigentlich müsste es genügen, wenn Du statt

Delphi-Quellcode:
Form2.Show;
Delphi-Quellcode:
Form2.HandleNeeded;
aufrufst, bevor Du es ausliest.

jensw_2000 7. Mai 2006 02:34

Re: SendMessage > HWND darf nicht in Variable stehen
 
"HandleNeeded" funktioniert super :thumb:
Ich rufe es gleich im OnCreate der Sub-Form auf.

Die Message veranlasst bei mir eine Größenanpassung der anzuzeigenden SubForm.
Da ich die Grüße nun vor dem Show festlegen kann, spare ich mir ein unnötiges Neuzeichnen der Form.

Danke und schöne Grüße,
Jens
:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz