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.