AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi WM_USER-Nachricht an alle Dialogelemente schicken
Thema durchsuchen
Ansicht
Themen-Optionen

WM_USER-Nachricht an alle Dialogelemente schicken

Ein Thema von Lagopus · begonnen am 24. Nov 2008 · letzter Beitrag vom 24. Nov 2008
 
Lagopus

Registriert seit: 28. Jan 2008
5 Beiträge
 
#5

Re: WM_USER-Nachricht an alle Dialogelemente schicken

  Alt 24. Nov 2008, 15:29
Hallo Christopher,

Zitat von Relicted:
Huhu!

Also du brauchst die WNDProc nicht überschreiben. eine definition einer funktion reicht da vollkommen aus:

Delphi-Quellcode:
uses
  Windows;

const
  UM_MEINENACHRICHT = WM_USER + 1337;

procedure UMMEINENACHRICHT(var Message: TMessage); message UM_MEINENACHRICHT;
Wenn ich diese Prozedur in meinem Formular einbinde, dann reagiert sie leider nicht auf PostMessage(HWND_BROADCAST,...) - sprich, die WM_USER-Nachricht kommt dort gar nicht an.


Zitat von Relicted:
damit hast du dann die message ohne das überschreiben in deinen formularen.
dort kannst du dann mit

Delphi-Quellcode:
for i:= 0 to ComponentCount - 1 do
begin
  if Components[i] is TMeinStaticText then
  begin
    (Components[i] as TMeinStaticText).MachWas();
  end;
end;
an die Statics weitergeben.
So ähnlich habe ich das in meiner bisherigen Lösung mit der überschriebenen WndProc-Prozedur und der Application.OnMessage auch gemacht - allerdings ist Deine Version viel eleganter ... ;-)


Zitat von Relicted:
Um den Broadcast zu umgehen könntest du auch beim erzeugen des formulars dich in eine globale programmliste eintragen und sagen "hier sind meine static's bitte sag denen bescheid wenn du irgendwas tun magst".
diese lösung wäre dann geeignet wenn du keine nachrichten hin und her blasen magst.
Öhm, wie meinst Du das mit der globalen Programmliste? Das habe ich nicht kapiert...

Danke & Grüße,

Lagopus.

Nachtrag:

Das Problem liegt definitiv daran, daß PostMessage(HWND_BROADCAST,...) nicht bei den Formularen ankommt. Sende ich explizit via PostMessage(FormX.Handle,...), dann klappt's.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 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