Einzelnen Beitrag anzeigen

Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Rückgabewert für QueryContextMenu erstellen

  Alt 18. Jul 2008, 17:45
Hallo marabu,

Zitat von marabu:
... ist der Rückgabewert nicht von der Anzahl der bereitgestellten Menuitems abhängig, sondern entspricht einfach der Zahl der verbrauchten Command Identifier, gerechnet ab dem ersten möglichen in idCmdFirst übermittelten Wert. Dabei zählen eventuelle Lücken mit, ...
Verstehe ich das richtig, dass HRESULT gebildet wird aus der Gesamtanzahl der vergebenen MenuItem-IDs (MenuItemInfo-wID) minus 1 dafür, dass man mit idCmdFirst beginnt? Oder wird idCmdFirst mitgerechnet?

Beispiel:

1. MenuItem = idCmdFirst,
2. MenuItem = idCmdFirst + 1,
3. MenuItem = idCmdFirst + 3, <- ist das mit Lücke gemeint?

Ist Result dann = 2 oder = 3?

Ist das mit den Lücken so gemeint, dass ich die jeweilige wID frei vergeben kann? Oder ist damit gemeint, dass Lücken entstehen, wenn ich ein Untermenü erstelle und das MenuItem, mit dem das Untermenü aufgeklappt wird, einen Index erhält, der nicht ausgewertet werden kann (kein Click-Event)? Oder ganz was anderes?


Zitat von marabu:
Der als HRESULT zurückgegebene Wert (32 bit) ist gepackt. Das gesetzte höchste Bit signalisiert einen Fehler, die untersten 16 bit übermitteln im vorliegenden Fall das eigentliche Ergebnis. Da die oberen 16 bit bei dir 0 sind, kannst du auf MakeResult() verzichten.
Verstehe ich das richtig, dass ich dann also (wie im Posting #1 beschrieben) einfach Result := 2; zuweisen kann? MAKE_HRESULT() habe ich in Delphi auch nicht verwenden können. (Also diese oder eine entsprechende Funktion habe ich in Delphi nicht gefunden. )

Viele Grüße,
Guido.


Edit: MAKE_HRESULT()-Frage hinzugefügt.
  Mit Zitat antworten Zitat