Einzelnen Beitrag anzeigen

FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#20

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 9. Mär 2011, 15:22
Und nun nochmal zu den Grundlagen, was individuelle/eigene Messages angeht...

Hier erstmal die wichtigesten Bereiche:
MSDN-Library durchsuchenWM_USER bis WM_USER+31743 aka $0400 bis $7FFF
MSDN-Library durchsuchenWM_APP bis WM_APP+16383 aka $8000 bis $BFFF
$C000 bis $FFFF mit MSDN-Library durchsuchenRegisterWindowMessage
der Rest, also alles unter WM_USER und über $FFFF ist Windows vorbehalten.

Für den kleinen Anwendungsprogrammierer interessiert hier vorallem WM_USER+x und RegisterWindowMessage.

Bei WM_USER und WM_APP müssen die Programmierer aufpassen, daß sie möglichst keine Werte doppelt belegen (zumindestens nicht innerhalb von Klassen/Windows, welche diese Messages empfangen könnten.
Bei RegisterWindowMessage muß man nur aufpassen, daß der Name möglichst eindeutig ist und somit keine doppelten Message-IDs auftreten können.

RegisterWindowMessage ist eigentlich vorwiegend für Nachrichten von Anwendung zu einer anderen Anwendung vorgesehn, aber man kann sie auch innerhalb einer Anwendung nutzen.
Ok, dass erklärt, welche ID-Bereiche zur Verfügung stehen.
Aber wie verwende ich denn die eigenen Messages?
Wenn ich die Vorgehensweise wie oben im Link in der MSDN beschrieben, in Delphi übertrage, meldet das Programm beim ausführen in der Zeile uFindReplaceMsg := RegisterWindowMessage(PChar(WM_MY_MESSAGE)); eine Zugriffsverletzung.
Kannst Du bitte ein Stück Beispielcode posten?
Herzlichen Gruß
FriendOfDelphi

Geändert von FriendOfDelphi (10. Mär 2011 um 10:45 Uhr)
  Mit Zitat antworten Zitat