Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Nachricht an alle Fenster der eigenen Anwendung schicken (https://www.delphipraxis.net/152207-nachricht-alle-fenster-der-eigenen-anwendung-schicken.html)

Codehunter 15. Jun 2010 08:53

Nachricht an alle Fenster der eigenen Anwendung schicken
 
Hallo zusammen,

ist es möglich, per Post/Sendmessage eine Notification so abzusetzen, daß die WndProc aller geöffneten Fenster darauf anspringt? Application.Handle ist ja auch nur das Handle des Hauptformulars (erster Gedanke, schon versucht) :-(

Grüssle
Cody

himitsu 15. Jun 2010 08:58

AW: Nachricht an alle Fenster der eigenen Anwendung schicken
 
Alle Top-Level-Fenster der eigenen Anwendung suchen und diese anschreiben.

Alle Fenster, welche bei Application registriert sind (also dieses als Owner besitzen), könntest du über Application auflisten lassen und kämst so sogar direkt an die jeweiligen Fensterklassen.

DeddyH 15. Jun 2010 08:59

AW: Nachricht an alle Fenster der eigenen Anwendung schicken
 
Nur eine Idee: definiere Dir eine eigene Message (auf die dann natürlich Deine eigenen Fenster reagieren müssen) und verschicke sie an HWND_BROADCAST.

bernau 15. Jun 2010 09:06

AW: Nachricht an alle Fenster der eigenen Anwendung schicken
 
Zitat:

Zitat von DeddyH (Beitrag 1028929)
Nur eine Idee: definiere Dir eine eigene Message (auf die dann natürlich Deine eigenen Fenster reagieren müssen) und verschicke sie an HWND_BROADCAST.

Wenn das Programm zwei mal gestartet ist, würde auch das jeweils andere Programm benachrichtigt werden. Das müsste ggf. abgefangen werden.

DeddyH 15. Jun 2010 09:13

AW: Nachricht an alle Fenster der eigenen Anwendung schicken
 
Man könnte ja in den Parametern eine eindeutige Kennung hinterlegen (ProzessID, Handle des Mainforms etc.), welche sich auf Empfängerseite bequem auswerten und vergleichen lässt.

SirThornberry 15. Jun 2010 09:52

AW: Nachricht an alle Fenster der eigenen Anwendung schicken
 
Erkläre am besten mal was du vor hast. Ich glaube das wird sonst eine Frickellösung. Denn wirklich an alle Fenster deiner Anwendung die gleiche Nachricht zu schicken macht wenig Sinn da Edits, Panels etc. welche auch als Fenster gelten mit deiner Nachricht am Ende gar nichts anfangen können.
Ich denke es wird eine bessere Lösung für dein Vorhaben geben als an alle Fenster die gleiche Nachrichten zu schicken.

Muetze1 15. Jun 2010 12:18

AW: Nachricht an alle Fenster der eigenen Anwendung schicken
 
Alternativ Delphi-Referenz durchsuchenTScreen.Forms, also die globale Variable Screen und deren Eigenschaften Forms[] und FormCount nutzen.

SirThornberry 15. Jun 2010 12:31

AW: Nachricht an alle Fenster der eigenen Anwendung schicken
 
Aber Öffnen- und Speicherdialoge welche ja auch als Fenster zu betrachten sind wären davon wieder nicht betroffen. Daher wäre es sehr interessant zu wissen was der Fragesteller überhaupt bezweckt um die eine oder andere Lösung ausschließen zu können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 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