![]() |
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Wer suchet, der findet:
![]() |
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Zitat:
Ich habe sogar beide Units mit eingebunden; Unit Forms und Unit Classes. Der Compiler meldet trotzdem den Fehler "Undefinierter Bezeichner: 'AllocateHWnd'". |
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Und die Delphi-Hilfe findet auch nichts? Da müsste die Unit nämlich drinstehen.
|
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Hi,
Hast du das Classes. vor AllocateHWnd entfernt oder durch Forms. ersetzt? Sonst sucht der Compiler nämlich weiterhin in der Unit Classes |
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Stimmt, das hatte ich gar nicht gesehen. Dann wird Forms also wohl doch richtig sein.
|
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Zitat:
Damit meldet der Compiler den Fehler "Undefinierter Bezeichner: 'AllocateHWnd'". Nach Deinem Tipp habe ich die Unit "Classes" ausdokumentiert und die Unit "Forms" belassen. Damit meldet der Compiler den Fehler "Undefinierter Bezeichner: 'Classes'". Beides in der Zeile
Delphi-Quellcode:
FHandle := Classes.AllocateHWnd(Self.WndProc);
|
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Genau aus der Zeile sollst Du das "Classes." rausnehmen.
|
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Zitat:
Funktioniert; der Compiler meldet keine Fehler mehr. :) Wie funktioniert denn das jetzt; wie kann ich das Ganze jetzt zum Leben erwecken? Muss ich zur Laufzeit mit
Delphi-Quellcode:
eine eigene Message mit den entsprechenden Parametern erzeugen, die dann dafür sorgt das die zugeordnete Prozedur (hier: OnStartupMessage(...)) aufgerufen wird und in dieser dann die übergebene ID abfragen? :?:
PostMessage(...)
|
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Und nun nochmal zu den Grundlagen, was individuelle/eigene Messages angeht...
Hier erstmal die wichtigesten Bereiche: ![]() ![]() $C000 bis $FFFF mit ![]() 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. |
AW: Individuelle, eigene Messages erzeugen und abarbeiten
Zitat:
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
Delphi-Quellcode:
eine Zugriffsverletzung.
uFindReplaceMsg := RegisterWindowMessage(PChar(WM_MY_MESSAGE));
Kannst Du bitte ein Stück Beispielcode posten? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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