Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Shortcuts und FormStyle (https://www.delphipraxis.net/134095-shortcuts-und-formstyle.html)

markus5766h 15. Mai 2009 12:42


Shortcuts und FormStyle
 
Hallo,
hab' hier ein kleines Verständnisproblem mit der Registrierung von Shortcuts
und der Zuweisung des FormStyle

Code-Ausschnitt:
Delphi-Quellcode:
type
  TWMHotkey = record
  Msg: Cardinal;
  idHotKey: Word;
  Modifiers: Integer;
  VirtKey: Integer;
 end;

Const ID = $FF;

.
.
.

  private
    { Private declarations }
     scHandle : THandle;        
     scState : LongBool;
     scTbar  : Boolean;
     procedure SetValues;
     procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;

.
.
.

implementation

{$R *.dfm}

Const
  cmdShow: array[Boolean] of Integer = (SW_HIDE, SW_SHOW);


procedure TDockFormMain.WMHotKey(var Msg: TWMHotkey);
var
  Handle: THandle;
begin
  case Msg.IdHotKey of
    ID: begin
         if scTbar then
          begin
           Handle := FindWindow('Shell_TrayWnd', nil);
           if Handle <> 0 then
           ShowWindow(Handle, cmdShow[True]);
          end;
        end;
.
. // Behandlung weiterer Shortcuts
.
  end;
  inherited;
end;

procedure TDockFormMain.FormCreate(Sender: TObject);
begin
.
.
.
SetValues;
end;

procedure TDockFormMain.SetValues;
var
aResult : Integer;
begin

if fStyle then       // FormStyle
 begin
  DockFormMain.FormStyle := fsStayOnTop;
 end
  else
   begin
    DockFormMain.FormStyle := fsNormal;
   end;

.
.
.


  // ShortCuts registrieren
  scHandle := DockFormMain.Handle;
  {1. ALT+CTRL+T, Taskleiste einblenden}
  scState:=RegisterHotKey(scHandle, ID, MOD_Alt+MOD_CONTROL, Ord('T'));
  if not scState then begin end; // Fehlerbehandlung
  scState:=RegisterHotKey(scHandle, ID+1, MOD_control, vk_f1);
.
. // Registrierung weiterer Shortcuts
.
end;
nun zum eigentlichen Problem: wenn ich die Registrierung der Shortcuts im
On-Create-Ereignis vornehme, läuft gar nichts:
nach etwas Suchen hab' ich dann herausgefunden, dass es an der Zuweisung des
Form-Style lag. Diese Zuweisung erfolgte nach der Registrierung der Shortcuts.
Also die Registrierung kurz hinter die Zuweisung des Form-Style geschoben und
schon ging's.
Die Frage ist nun, was hat die Zuweisung des Form-Style mit der (bereits erfolgten)
Registrierung der Short-Cuts zu tun ?

Hab's noch mal komplett neu geschrieben (... man gibt ja nicht auf) - wieder mit der
Registrierung im On-Create-Ereignis : und siehe da - wie gehabt.

Falls also jemand eine Erklärung für dieses Verhalten hat, wäre ich sehr dankbar.
Ich kann um's Verrecken keine Erklärung hierfür finden.

markus5766h 22. Mai 2009 17:59

Re: Shortcuts und FormStyle
 
Hallo:

... keiner 'ne Idee ???????


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 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