Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi OnKeyDown Tab-Taste (https://www.delphipraxis.net/158685-onkeydown-tab-taste.html)

Dunkelbunt27 26. Feb 2011 19:04

OnKeyDown Tab-Taste
 
Hallo Delphi-PRAXIS,

ich möchte in meinem Programm mit der Tab-Taste navigieren.
zur Erklärung was ich mache:
Im OnKeyDown wird auf die Tastendrücke reagiert.
z.B. Leertaste = eine Position weiter auf meinem Image (etwas wird gezeichnet)
(Es handeltsich also nicht um ein RichEdit Feld oder so etwas und das Ereignis was auf den Tastendruck folgt gebe ich selber an und das Ganze hat nichts mit den normalen Befehlen in vordefinierten Elementen zu tun.)

Bei allen anderen Tasten funktioniert es auch, außer bei der Tab Taste...
Bsp:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
                                        Shift: TShiftState);
begin
  case Key of
     VK_TAB : begin            
                  Anweisung;
               end;
      VK_SPACE : begin
                  Anweisung;
                end;
     ...
     end;
end;
statt VK_TAB, geht auch word(9) oder #9 nicht.

Muss man etwas besonderes beachten?
Ich hoffe jemand kennt das Problem und kennt eine Lösung.

FG Dunkelbunt

SirThornberry 26. Feb 2011 19:09

AW: OnKeyDown Tab-Taste
 
Du willst sozusagen die Tab-Taste selbst behandeln anstelle des Standardverhaltens?
Dann musst du wm_getdlgcode verarbeiten

Dunkelbunt27 26. Feb 2011 19:19

AW: OnKeyDown Tab-Taste
 
Ah... sowas habe ich mir schon gedacht... Danke.
Ich such mal bei msdn.

Edit:
Welche Parameter brauch ich dazu... Hast du vllt ein Beispiel dazu?

Fg Dunkelbunt

Hawkeye219 26. Feb 2011 19:46

AW: OnKeyDown Tab-Taste
 
Hallo,

muss die Abfrage unbedingt im Handler für OnKeyDown stattfinden? Das Ereignis OnShortCut des Formulars eignet sich vielleicht eher:
Delphi-Quellcode:
procedure TForm1.FormShortCut (var Msg: TWMKey; var Handled: Boolean);
var
  KeyCode: TShortCut;
begin
  KeyCode := {Menus.}ShortCut(Msg.CharCode, KeyDataToShiftState(Msg.KeyData));

  case KeyCode of
    VK_TAB: ShowMessage ('tab');
    VK_SPACE: ShowMessage ('space');
  else
    Exit;
  end;

  Handled := True;
end;
Gruß Hawkeye

Dunkelbunt27 26. Feb 2011 20:27

AW: OnKeyDown Tab-Taste
 
Hallo,

wenn es funktioniert, wieso nicht.
Ich muss es ersteinmal Testen.
Danke für die Anregung.

EDIT:
Super, es funktioniert und ist einfach zu benutzen ;)
Danke für den Tipp.

FG Dunkelbunt


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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