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 Windows Nachrichten Empfangen, obwohl Form visible = false ? (https://www.delphipraxis.net/134301-windows-nachrichten-empfangen-obwohl-form-visible-%3D-false.html)

Corpsman 19. Mai 2009 15:39


Windows Nachrichten Empfangen, obwohl Form visible = false ?
 
Hossa Leuts,

Ich habe mir eine Kleine DLL geschrieben, welche mir ab und an eine Nachricht an meine Anwendung sendet. Dies geschieht mittels:

Delphi-Quellcode:
        PostMessage(ApplicationWnd, WM_User+5, 1,2);
Empfangen kann ich die Nachricht auch wunderbar mittels

Delphi-Quellcode:
Procedure TForm1.ApplicationEvents1Message(Var Msg: tagMSG;
  Var Handled: Boolean);
Var
  T: TWMAntwort;
Begin
  If (Msg.message = WM_User+5) Then Begin
    // Do Something
  End;
End;
Das Problem ist nun wenn ich meine Anwendung invisible Schalte also mittels :
Delphi-Quellcode:
Form1.visible := false;
Dann kann ich die Nachrichten nicht mehr empfangen. Anscheinend bearbeitet die VCL dann die Messages nicht mehr. Wist ihr was ich da machen kann um trotz Invible mit meiner Anwendung zu Kommunizieren ?

sirius 19. Mai 2009 16:33

Re: Windows Nachrichten Empfangen, obwohl Form visible = fal
 
Ist ApplicationWnd das Handle deiner Form oder des Objektes Application?

Corpsman 19. Mai 2009 16:48

Re: Windows Nachrichten Empfangen, obwohl Form visible = fal
 
Form1.handle

SirThornberry 19. Mai 2009 16:54

Re: Windows Nachrichten Empfangen, obwohl Form visible = fal
 
Bist du dir sicher das die Application die Nachricht nicht empfängt?
Ich tippe eher das du das fenster gar nicht findest und entsprechend an 0 sendest oder das dein TApplication ein anderes Handle später hat und du somit an ein nicht mehr existentes Fenster sendest.

Corpsman 19. Mai 2009 17:30

Re: Windows Nachrichten Empfangen, obwohl Form visible = fal
 
Also das einzge was sich zwischen "es Funktioniert" und "es Funktioniert nicht" ändere ist, das ich während der runtime auf nen Button Drücke der

Form1.visible := false;

macht.

Hohle ich die Anwendung via "Hotkey" wieder vor, dann gehts wieder.

Was allerdings auch merkwürdig ist.

Ich habe einfach mal Messageboxes erzeugen lassen, diese werden nicht angezeigt bei visible = false, erscheinen dann aber aller wenn ich wieder visible = true habe, also verloren geht wohl nichts ;).


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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 by Thomas Breitkreuz