Autor Beitrag
Logiqu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43

Win XP
Delphi 2006 Pro
BeitragVerfasst: Di 27.09.05 17:42 
Hallo!

Ich will ein Ereignis aus meiner Klasse aussenden, welches von dieser wieder ausgewertet werden soll. Die Klasse habe ich im TForm1 erstellt. Jedoch gelangt das Ereignis nicht an die Klasse zurück, sondern nur an TForm1.
Muss meine Klasse von einer bestimmten vererbt werden, damit die Messages von TForm1 weiter geschickt werden?

Ich fange die Ereignisse in meiner Klasse mit

ausblenden Delphi-Quelltext
1:
procedure WMClearAllMenusEvent(Var Message : TMessage); Message WM_CLEARALLMENUSEVENT;					


ab.

ausblenden Delphi-Quelltext
1:
2:
const
  WM_CLEARALLMENUSEVENT = WM_USER + 1000;


Hat jemand ne Idee? Danke im Voraus!

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.

_________________
Logiqu. Just feel it...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 27.09.05 23:43 
Verständnisproblem deiner Seits: nachrichten werden in der Regel an Fenster gesendet. Dort werden sie von der Nachrichtenschleife aus der Nachrcihtenschlange abgeholt und an die Fensterprozedur weitergeleitet, wo sie dann verarbeitet werden. Hat man das verstanden, wird klar, warum das bei dir nicht funktioniert: Du kannst keine Nachrciht an eine Klasse, also Code innerhalb deines Programmes schicken, da deine Klasse keine Nachrichtenschleife hat, die sie abholen könnte.

@retygn: So was meine ich. ;)

Einzige Möglichkeit wären Threads. Mit Suche im MSDN POSTTHREADMESSAGE kann man auch Nachrichten an Threads schicken. Oder aber, was wesentlich besser wäre: Du löst das Problem mit Events.
Logiqu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43

Win XP
Delphi 2006 Pro
BeitragVerfasst: Mi 28.09.05 10:46 
Ok, Danke! Events kann ich leider nicht verwenden, weil einige Messages geworfen werden, wenn das sendende Objekt gelöscht werden soll.

_________________
Logiqu. Just feel it...