![]() |
D2005 und keypreview
Hallo,
ich habe wieder mal ein Problem bei der Umstellung von D7 auf D2005/6. In einem Form ist keypreview auf true gesetzt und das Ereignis onkeydown abgefangen. Dieses Ereignis kommt jedoch nur durch, wenn ActiveControl <> nil ist. Ich will in einer Paintbox eine Grafik mit der Tastatur steuern. Als workaround habe ich hinter einem Panel ein Editfenster (verdeckt) angeordnet und setze bei ActiveControl=nil in einem Timer immer Edit1.Setfocus. Weis wer eine bessere Lösung? Unter Delphi 7 funktionierte das problemlos. Gruß Peter |
Re: D2005 und keypreview
Also das scheint ein Bug in der VCL zu sein.
Trotz keypreview kommen keine Tastaturereignisse in der Form an, wenn ActiveControl = nil ist. Ich habe mir jetzt mit einer ApplicationEvent Componente geholfen. (Es wird Strg + und strg - zum Zoomen abgefangen). Hier die Lösung :
Delphi-Quellcode:
Gruß Peter
procedure Tf_Struktur.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); begin if MSG.message = wm_keydown then begin if msg.wParam = 107 then begin Grafik.MouseWhel(120,LastMousepos); msg.wParam := 0; msg.message := 0; end; if msg.wParam = 109 then begin Grafik.MouseWhel(-120,LastMousepos); msg.wParam := 0; msg.message := 0; end; end; end; [edit=sakura] [delphi]Tags Mfg, sakura[/edit] |
Re: D2005 und keypreview
Also ich habe kein ActiveControl gesetzt und bei mir wird wenn KeyPreview True ist das Event OnKeyDown ausgelöst. Hast Du denn die Updates installiert die es für D2005 gibt? Oder hab ich das jetzt falsch verstanden?
|
Re: D2005 und keypreview
Zitat:
In der Form ist neben einigen Menüs nur ein Treeview und eine Paintbox. Der Fehler ist reproduzierbar aber inzwischen als Problem erst mal erledigt. Gruß Peter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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 by Thomas Breitkreuz