AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Individuelle, eigene Messages erzeugen und abarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

Individuelle, eigene Messages erzeugen und abarbeiten

Ein Thema von FriendOfDelphi · begonnen am 8. Dez 2010 · letzter Beitrag vom 9. Mär 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 8. Mär 2011, 14:06
Wer suchet, der findet: http://www.delphipraxis.net/98484-%5...elphi-5-a.html
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
FriendOfDelphi

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

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 8. Mär 2011, 14:31
Leider nicht.
Ich habe sogar beide Units mit eingebunden; Unit Forms und Unit Classes.
Der Compiler meldet trotzdem den Fehler "Undefinierter Bezeichner: 'AllocateHWnd'".
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 8. Mär 2011, 15:07
Und die Delphi-Hilfe findet auch nichts? Da müsste die Unit nämlich drinstehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#14

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 8. Mär 2011, 15:27
Hi,

Hast du das Classes. vor AllocateHWnd entfernt oder durch Forms. ersetzt?
Sonst sucht der Compiler nämlich weiterhin in der Unit Classes
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 8. Mär 2011, 15:29
Stimmt, das hatte ich gar nicht gesehen. Dann wird Forms also wohl doch richtig sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
FriendOfDelphi

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

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 9. Mär 2011, 09:51
Hi,

Hast du das Classes. vor AllocateHWnd entfernt oder durch Forms. ersetzt?
Sonst sucht der Compiler nämlich weiterhin in der Unit Classes
Ich hatte zunächst beide Units mit eingebunden. Und zwar in der Reihenfolge zuerst die Unit "Classes" und dann die Unit "Forms".
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 FHandle := Classes.AllocateHWnd(Self.WndProc);
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 9. Mär 2011, 09:54
Genau aus der Zeile sollst Du das "Classes." rausnehmen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
FriendOfDelphi

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

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 9. Mär 2011, 11:17
Genau aus der Zeile sollst Du das "Classes." rausnehmen.
Oh, da habe ich wohl nicht richtig gelesen...
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 PostMessage(...) 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?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#19

AW: Individuelle, eigene Messages erzeugen und abarbeiten

  Alt 9. Mär 2011, 12:03
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz