Zitat:
PostMessage(Win,$7FFF,0,0);
$7FFF: Nein!
A) Man verwendet niemals nichtssagende Werte (MagicValue), vor allem nicht, wenn es entsprechende Konstanten gibt. (WM_USER+X)
B) Außerdem liegt dieser Wert auch noch im falschen Bereich. (
WM_APP+X)
C) Man
sollte muß für sowas prozessübergreifendes
RegisterWindowMessage verwenden.
$7FFF: Doch!
Aus "About Messages and Message Queues" Kapitel "Application-Defined Messages"
Zitat:
Values in the range 0x0400 (the value of WM_USER) through 0x7FFF are available for message identifiers for private window classes.
Aber vielleicht hab ich das falsch verstanden.
Wie auch immer, so wie ich es gemacht habe funktioniert es.
Wo siehst du den Unterschied zwischen $7FFF und WM_USER+X wo bei letzterem das X auch ein willkürlich festgelegter Wert ist.
In dem Musik-Programm, das der Empfänger der Message ist, sind diverse Users-Messages definiert
Code:
UM_GetInfo=WM_User;
UM_SettingsChanged=UM_GetInfo+1;
UM_OverWrite=UM_SettingsChanged+1;
UM_RichEditVScroll=UM_OverWrite+1;
UM_DurationCount=UM_RichEditVScroll+1;
UM_DurationDone=UM_DurationCount+1;
UM_RepaintListBoxes=UM_DurationDone+1;
UM_SetInfo=UM_RepaintListBoxes+1;
...
UM_ToggleMusic=$7FFF;
und, wie du sehen kannst, ist die letzte "UM_ToggleMusic=$7FFF".
Was für einen Sinn macht es, diese auch in meinem kleinen Progrämmchen mit einem Namen zu versehen?
Ich würde das einsehen wenn wie z.B. in der
Vcl diese Konstante "Global" verfügbar wäre (Wobei das wahrscheinlich irgendwie machbar wäre).
Da das hier aber nicht der Fall ist, bringt es aus meiner Sicht keinen Vorteil, auch in dem sendenden Programm die Konstante "UM_ToggleMusic=$7FFF" zu definieren.
Trotzdem: Danke für den Hinweis.