Thema: Delphi Shortcuts und FormStyle

Einzelnen Beitrag anzeigen

Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#1

Shortcuts und FormStyle

  Alt 15. Mai 2009, 13:42
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.
Markus H.
  Mit Zitat antworten Zitat