AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pfeiltasten abfangen

Ein Thema von PeterKiers · begonnen am 15. Apr 2006 · letzter Beitrag vom 19. Apr 2006
Antwort Antwort
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#1

Pfeiltasten abfangen

  Alt 15. Apr 2006, 20:27
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Pfeiltasten abfangen

  Alt 15. Apr 2006, 20:31
Hallo Peter,

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

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Pfeiltasten abfangen

  Alt 15. Apr 2006, 22:42
Oder machs mit DelphiX und TDXInput
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Pfeiltasten abfangen

  Alt 16. Apr 2006, 00:30
guck hier :

http://www.delphipraxis.net/internal...light=tastatur
Gruß
Hansa
  Mit Zitat antworten Zitat
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#5

Re: Pfeiltasten abfangen

  Alt 19. Apr 2006, 10:00
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 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