AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Was ist 49320?

Ein Thema von Mattze · begonnen am 6. Mär 2011 · letzter Beitrag vom 6. Mär 2011
Antwort Antwort
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

Was ist 49320?

  Alt 6. Mär 2011, 11:15
Hallo,

laut Delphi (D7pro) dürfen Windows Botschaften (WM_ usw.) max. 49151 sein.
Nun habe ich aber (unter XP) 49315, 49320, 49326...
Was sind das für Botschaften. Ich finde keine Liste, gibt's da etwas?
Wie kann man die auswerten (außer über Tapplication.onmessage)?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Was ist 49320?

  Alt 6. Mär 2011, 11:36
Nun, soweit ich weiß, gibts nur nach unten hin eine Begrenzung - benützterdefinierte Botschaften müssen > WM_USER ($400 [=1024]) sein!

Treten irgendwelche systemweite Fehlerverhalten auf, wenn du Nachrichtenkonstanten größer als diese Zahl verwendest?

Wie Window-callback Funktion sieht ja so aus:
function WndProc(hWnd, uMsg: DWord; wParam, lParam: Integer): Integer; stdcall; was heißt, dass Messages 32 Bit sind... Du kannst alle Werte im Bereich von [WM_USER+1 .. 2^31] verwenden!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton ( 6. Mär 2011 um 11:39 Uhr)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#3

AW: Was ist 49320?

  Alt 6. Mär 2011, 11:55
Hallo,

danke für die schnelle Hilfe.
Aus der Delphi-Hilfe ("Botschaftsbehandlung" oder so ähnlich):
Zitat:
Sie erstellen eine Botschaftsmethode, indem Sie die Direktive message und eine Integer-Konstante zwischen 1 und 49151 (die so genannte Botschafts-ID) in eine Methodendeklaration aufnehmen.
Gut, also die WndProc. Hätte mir ja einfallen können, da ich das schon einige Male gemacht habe.

Bleibt nur das Problem, was das für Botschaften sind über 49151.

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Was ist 49320?

  Alt 6. Mär 2011, 13:09
Hmm, kann sein, dass sie evt. veraltet ist und früher das einmal so war. kA!

Zitat von Borland Delphi Hilfe:
Deklaration eines Botschaftsbezeichners

Ein Botschaftsbezeichner ist eine Konstante im Integer-Format. Windows reserviert die Botschaften unterhalb von 1024 für den eigenen Gebrauch. Sie können deshalb erst über dieser Grenze mit der Deklaration Ihrer Botschaften beginnen.

Die Konstante WM_APP repräsentiert die Anfangsnummer für benutzerdefinierte Botschaften. Definieren Sie ihre Botschaftsbezeichner beginnend bei WM_APP.

Einige Standard-Steuerelemente von Windows benutzen Botschaften, die im Bereich der benutzerdefinierten Botschaften liegen. Dazu gehören Listenfelder, Kombinationsfelder, Eingabefelder und Befehlsschaltflächen. Wenn Sie eine Komponente aus einem dieser Elemente ableiten und dafür eine neue Botschaft definieren wollen, müssen Sie in der Unit Messages überprüfen, welche Botschaften Windows bereits für das Steuerelement definiert hat.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#5

AW: Was ist 49320?

  Alt 6. Mär 2011, 14:21
Hallo,

das kann durchaus veraltet sein! Ich schrieb ja "D7 pro".
Ich habe es natürlich auch mal mit 49320 probiert. Das hat dann gleich der Compiler abgewehrt und nicht übersetzt.

Ist aber auch nicht sooo schlimm, da man das ja über die WndProc abfragen und machen kann. (Ich habe das in TApplication.OnMessages probiert. Da geht das auch problemlos. Es ist nur bei der Definition einer Behandlungsroutine hinter "message" nicht erlaubt.)

Bleibt also wirklich nur die Frage, was das eigentlich für eine Botschaft ist. In einer Liste (per Google) habe ich es bisher nicht gefunden. Ich suche weiter...

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#6

AW: Was ist 49320?

  Alt 6. Mär 2011, 15:25
Code:
#define WM_APP                         0x8000
#define WM_USER                        0x0400
In der Dokumentation findet man dann:

Zitat von MSDN aus VS 2005:
0 through WM_USER–1: Messages reserved for use by the system.
WM_USER through 0x7FFF: Integer messages for use by private window classes.
WM_APP through 0xBFFF: Messages available for use by applications.
0xC000 through 0xFFFF: String messages for use by applications.
Greater than 0xFFFF: Reserved by the system.
Wenn wir uns dann die Nachricht mal als Hexzahl angucken 0xC0A8, sehen wir, daß es sich um eine "String-Nachricht" handelt (s.o.).

Wenn wir dann nochmal mit diesem kleinen Programm von mir nachgucken, wissen wir, daß es es zum Zeitpunkt der Erstellung des Programms keine vom Platform SDK definierte Nachricht gab die exakt diesem Wert entspricht/entsprach.

Bleibt nur das Problem, was das für Botschaften sind über 49151.
49151 == 0xBFFF ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:42 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