Einzelnen Beitrag anzeigen

Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: WM_USER-Nachricht an alle Dialogelemente schicken

  Alt 24. Nov 2008, 15:07
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;
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.

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.

ich hoffe das hier is fehlerfrei.. gerade ausm gedächtnis getippt

Gruß
Reli
  Mit Zitat antworten Zitat