Der Absturz beim Rechtsklick bei Windows 10 kommt von dieser Zeile (uMain.pas Zeile 961):
Das liegt daran, dass WindowFromDC(PDis.HDC) 0 zurückliefert.
Ohne die Zeile wird das Menü angezeigt, allerdings wird der aktuelle Eintrag nach dem Hovern nicht wieder zurückgesetzt, sprich nach einmal Drüberfahren sehen alle gehovert aus.
Für die Leute die es interessiert warum die Menu Einträge verschoben und WindowFromDC 0 zurück liefert.
Es liegt definitiv an Windows. (Windows 7 und Up)
WindowFromDC liefert dann 0 zurück wenn Menu Animationen eingeschaltet sind.. das ist fakt.
Meine Lösung dazu ist bei OwnerDraw Menus diese Temporär auszuschalten wenn sie aktiv sind.
Delphi-Quellcode:
function TSkinEngine.SetMenuAnimation(MenuAnimation: BOOL): Boolean;
begin
// Bisherige Einstellung ermitteln:
result := SystemParametersInfo(SPI_GETMENUANIMATION, 0, @FOldSetting, 0);
if result = false then
// Result := False;
// Der abfragende Aufruf war nicht erfolgreich
exit; // Rückgabewert bleibt False
// Wert ändern und Erfolg prüfen:
if Bool(FOldSetting) <> MenuAnimation then
result := SystemParametersInfo(SPI_SETMENUANIMATION, 0, Pointer(Ord(MenuAnimation)),
SPIF_SENDCHANGE);
end;
gruss