Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Pfeiltasten abfangen (https://www.delphipraxis.net/67510-pfeiltasten-abfangen.html)

PeterKiers 15. Apr 2006 19:27


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:
(*--------------------------------------------------------*)
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…
(*--------------------------------------------------------*)
Danke im Vorraus

Peter Kiers

marabu 15. Apr 2006 19:31

Re: Pfeiltasten abfangen
 
Hallo Peter,

schau mal in diesen thread: klick - könnte interessant für dich sein.

Grüße vom marabu

inherited 15. Apr 2006 21:42

Re: Pfeiltasten abfangen
 
Oder machs mit DelphiX und TDXInput

Hansa 15. Apr 2006 23:30

Re: Pfeiltasten abfangen
 
guck hier :

http://www.delphipraxis.net/internal...light=tastatur

PeterKiers 19. Apr 2006 09:00

Re: Pfeiltasten abfangen
 
Ich habe Das Problem selbst gelöst:

Code:
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;
Peter Kiers


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz