![]() |
Probleme mit Handle
Hallo,
ich habe mit folgendem Programm das Problem, dass nach ändern der Borderstyle ein RECREATE ausgeführt wird und sich somit das HND vom Form1 ändert. Folglich gehen auch die HOTKEY'S nicht mehr. So nun erstmal CODE:
Delphi-Quellcode:
Das ganze ist Teil eines grösseren Projektes und es hängen an dem HND noch mehrere Forms und CHILD'S. Ich muss also irgendwie erreichen das durch das setzen von BORDERSTYLE kein RECREATE ausgeführt wird bzw. ich das alte HND behalte.
procedure TForm1.WMHotKeyReg;
var hk_id_A :integer; hk_id_B :integer; hk_id_C :integer; begin hk_id_A:=1; hk_id_B:=2; hk_id_C:=3; if(RegisterHotKey(Form1.Handle,hk_Id_a,0,WORD('1'))) then if(RegisterHotKey(Form1.Handle,hk_Id_b,0,WORD('2'))) then if(RegisterHotKey(Form1.Handle,hk_Id_c,0,WORD('3'))) then end; procedure TForm1.FormCreate(Sender: TObject); begin WMHotKeyReg; end; procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if(msg.HotKey = 1) then Showmessage('Taste 1'); if(msg.HotKey = 2) then Showmessage('Taste 2'); if(msg.HotKey = 3) then Form_Stil; end; procedure TForm1.form_stil; begin Form1.BorderStyle:=bsSingle; end; Hat dazu jemand eine Idee? DANKE :-D Gruss wsks |
Re: Probleme mit Handle
eine (vielleicht blöde) Frage: warum gibst du die Hotkeys nicht (evtl. unsichtbaren) MenuItems und gehst damit den Handle-Problemen aus dem Weg ?
Gruß Roderich |
Re: Probleme mit Handle
Das Beispeil mit den Hotkeys soll nur zeigen was passiert wenn das Form durch RECREATE ein neues HND bekommt.
Ich muss aber im Projekt öfter Borderstyle usw. ändern. Gruss wsks |
Re: Probleme mit Handle
Was isr RECREATE? Habe ich noch nie gehört. :gruebel:
Und so lange das Fenster nicht zerstört und wieder neu erzeugt wird, ändert sich auch das Handle nicht. |
Re: Probleme mit Handle
Korrekt ist es natürlich - RecreateWnd -
Es ist aber leider so, dass wenn der Borderstyle sich ändert Form ein neues Handle bekommt. In meinem Beispiel sind die HOTKEYS dann nicht mehr verfügbar. Bin dann der Sache nachgegangen und in Unit Forms festgestellt das nach der Änderung von z.B. Borderstyle RecreateWnd ausgeführt wird. Gruss wsks |
Re: Probleme mit Handle
Dann ruf doch danach:
Delphi-Quellcode:
noch mal deine HotKey-Prozedur auf.
Form1.BorderStyle:=bsSingle
|
Re: Probleme mit Handle
Wie schon gesagt das mit den Hotkeys ist nur ein Beispiel. Ich brauch das Handle noch für weiter Funktionen und darf es nicht verändern durch BORDERSTYLE. Meine Idee dich ich hatte lag mehr im Bereich von:
Delphi-Quellcode:
komme aber da irgenwie nicht weiter. :?:
SetWindowLong
Gruss wsks |
Re: Probleme mit Handle
Delphi-Quellcode:
writeln('Hallo Welt');
:hello: Gruss wsks |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz