AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TStyleManager + Hotkey

Ein Thema von UliBru · begonnen am 5. Mai 2021 · letzter Beitrag vom 7. Mai 2021
Antwort Antwort
UliBru

Registriert seit: 10. Mai 2010
143 Beiträge
 
Delphi 11 Alexandria
 
#1

TStyleManager + Hotkey

  Alt 5. Mai 2021, 09:35
Delphi-Version: 10.1 Berlin
Ich verwende im Program Hotkeys, z.B. Shift+Alt+Up oder Shift+Alt+Down. Das funktioniert soweit.
Wenn ich aber nun z.B. per StyleManager die Oberfläche umschalte, z.B. TStyleManager.TrySetStyle('Windows10 Dark'); dann funktionieren die Hotkeys nicht mehr.
Kennt da jemand die Ursache oder gar eine Lösung?

Grüsse
Uli
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
143 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TStyleManager + Hotkey

  Alt 7. Mai 2021, 10:13
Mmh, mir scheint dass Stylemanager bzw. Hotkeys doch eher selten verwendet werden und noch weniger gemeinsam.
Ein einzige Diskussion habe ich noch gefunden mit https://stackoverflow.com/questions/...-inconsistency. Aber die dort gezeigte Lösung hilft mir nicht wirklich, zumindest verstehe ich sie nicht.

Bin ich wirklich der Einzige mit diesem Problem?

Grüsse
Uli
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
745 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TStyleManager + Hotkey

  Alt 7. Mai 2021, 11:18
Meinst du so globale Hotkeys, die du per RegisterHotkey registrierst? Die werden beim Wechsel des VCL-Styles alle ungültig, da dafür alle Forms neu erstellt werden müssen, und dadurch die Handles ungültig werden.

D.h. du müsstest vor dem Wechsel des Styles UnRegisterHotkey aufrufen, und danach wieder neu RegisterHotkey.
The angels have the phone box.
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
143 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TStyleManager + Hotkey

  Alt 7. Mai 2021, 12:02
Danke für den Tip, es klappt aber nicht.
Leider hilft es nicht einfach vorher UnRegisterHotkey und danach wieder RegisterHotkey auszuführen.

Und an das Patchen von z.B. (oder ähnlich Verantwortlichem)
Delphi-Quellcode:
procedure TFormStyleHook.CMDialogChar(var Message: TWMKey);
begin
  if (FMainMenuBarHook <> nil) and
     (KeyDataToShiftState(Message.KeyData) = [ssAlt]) and
     FMainMenuBarHook.CheckHotKeyItem(Message.CharCode) then
  begin
    Message.Result := 1;
    Handled := True;
  end;
end;
in VCL.Themes trau ich mich ran, dafür bin ich zu unerfahren.



Grüsse
Uli
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  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 04:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf