![]() |
Pfeiltasten abfangen
Hi Leute,
Ich suche nach einem Ereignis, dass ausgelöst wird, wenn der Nutzer auf eine der Richtungstasten drückt (links / rechts / oben / unten). Ich habe ein Komponente(TCustomControl) implementiert und würde gern noch ne Tastatursteuerung dazu entwerfen; dazu brauch ich aber so ein Ereignis. Und das Standart-OnKeyDown-Event wird bei mir nicht ausgelöst, wenn ich auf eine dieser Tasten drücke. Genauso wenig leider die Message WM_KEYDOWN. Weiß jemand Rat?
Code:
Danke im Vorraus
(*--------------------------------------------------------*)
procedure TDSP3270.CursorLeft(speed: integer); begin DispCell(FCsrCol,FCsrRow,true) ; FCsrCol := FCsrCol - speed ; if FCsrCol <= 0 then FCsrCol := FSCRCOLS ; DrawCursor(FCsrCol,FCsrRow) ; end; (*--------------------------------------------------------*) procedure TDSP3270.CursorRight(speed: integer); begin DispCell(FCsrCol,FCsrRow,true) ; FCsrCol := FCsrCol + speed ; if FCsrCol > FSCRCOLS then FCsrCol := 1 ; DrawCursor (*--------------------------------------------------------*) procedure TDSP3270.WMKeyDown(var Msg: TWMKeyDown); var First:boolean; function Shift:boolean; begin result:=GetKeyState(VK_SHIFT) < 0; end; function Ctrl:boolean; begin result:=GetKeyState(VK_CONTROL) < 0; end; begin case Msg.CharCode of vk_Left : CursorLeft(601); vk_right : CursorRight(600); und so weiter… (*--------------------------------------------------------*) Peter Kiers |
Re: Pfeiltasten abfangen
|
Re: Pfeiltasten abfangen
Oder machs mit DelphiX und TDXInput
|
Re: Pfeiltasten abfangen
|
Re: Pfeiltasten abfangen
Ich habe Das Problem selbst gelöst:
Code:
Peter Kiers
protected
{ Protected declarations } procedure wmkillfocus(var message : TMessage); message WM_KILLFOCUS; procedure wmsetfocus(var message : TMessage); message WM_SETFOCUS; procedure WMGetDlgCode(Var Msg:TWMGetDlgCode); message wm_getdlgcode; published { Published declarations } Property Align; Property TabOrder; Property TabStop default true; procedure TDSP3270.wmkillfocus(var message: TMessage); begin inherited; invalidate; end; procedure TDSP3270.wmsetfocus(var message: TMessage); begin inherited; invalidate; end; procedure TDSP3270.WMGetDlgCode(var Msg: TWMGetDlgCode); begin inherited; Msg.Result:=Msg.Result or dlgc_WantAllKeys or dlgc_WantArrows or dlgc_WantTab; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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