Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Verständnissfrage zu Messages


Bergmann89 - Di 01.06.10 02:46
Titel: Verständnissfrage zu Messages
Hey,

Ich hab grad diese Thema [http://www.delphi-forum.de/viewtopic.php?t=99826] gelesen und es lässt mir einfach keine Ruhe. Und zwar geht es darum, wie Controls auf einer Form benachrichtigt werden. Ich dachte immer, dass wenn ich eine Message an eine Form sende, die Form die Message dann weiterleitet, wenn eine Komponente auf der Form "getroffen" wurde (bei Mausklick z.B). Aber das macht sie nicht. Wie macht Windows das dann? Sucht sich Windows erst den Button und schickt die Message dann direkt an diesen? Wäre toll wenn mir das jmd erklären kann.

MfG Bergmann.


Delete - Di 01.06.10 09:58

WM_LBUTTONDOWN Message:
http://msdn.microsoft.com/en-us/library/ms645607(VS.85).aspx
WindowProc Callback Function:
http://msdn.microsoft.com/en-us/library/ms633573(v=VS.85).aspx
Windows and Messages:
http://msdn.microsoft.com/en-us/library/ms632586(v=VS.85).aspx
Messages and Message Queues:
http://msdn.microsoft.com/en-us/library/ms632590(v=VS.85).aspx


Bergmann89 - Di 01.06.10 17:24

Hey,

da hab ich mich ja auch schon durchgelesen, wie das mit den Messages schicken un abfangen geht weiß ich, aber da steht auch, das die Message an das Fenster geschickt wird. Also müsste die Form die Message ja dann an den Button weiter leiten, aber wenn ich (nich das System) ne Message an die Form schick, dann wird sie nich an den Button weiter geleitet...

MfG Bergmann


Sybok Factor - Mi 02.06.10 10:31

Hallo,

das Problem habe ich auch. Eine der möglichen Ursachen habe ich neulich im Delphi 6 (!) Buch von E. Warken gelesen: Wenn ApplicationEvents im Programm eingesetzt wird, dann klappt das mit den Messages innerhalb der Komponenten nicht. Dann muss dafür auch innerhalb der Komponente ein TApplicationEvents Objekt eingesetzt werden.
Das Events-Objekt hat das Ereignis OnMessage, das funktioniert auf jeden Fall.

Vielleicht hilft es dir weiter.

Viele Grüße
Sybok