![]() |
TABULATOR und Edit-Feld
Hallo!
Ich weiß jetzt nicht, ob ich letzte Zeit zu viel Programmiere aber ich kann die Tabulator Taste in einem TEdit-Feld nicht abfangen. In keinem der üblichen Ereignisse... weder in dem TEdit selbst noch in dem Formular. Ich möchte eben diese Taste abfangen und mein eigenes z.B.: Edit3.SetFocus ausführen... Weiß jemand wie ich feststellen kann ob Tabulator in einem TEdit Feld gedrückt wurde. Bei mir wird weder OnKeyDown noch irgendwas anderes aktiv... Natürlich OnExit und ähnliche Ereignisse kommen hier nicht in Frage Gruß Paul Jr. |
müsste so gehen (nicht getestet):
Code:
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if (key=VK_TAB) then ShowMessage('tt'); end; |
Moin Paul jr.
eine Möglichkeit: Erstelle Dir eine eigenen TEdit Komponente, in der Du die Tabulatortaste abfängst:
Delphi-Quellcode:
Wenn Du dass dann, z.B. so erzeugst, und eine entsprechende Routine zuweist bekommt das neue Edit Feld direkt mit, dass TAB gedrückt wurde.
type // Abfangen der Navigationstasten
TmyEdit = class(TEdit) private procedure WMGetDlgCode(var msg: TWMGetDlgCode); message WM_GETDLGCODE; end; //... implementation procedure TmyEdit.WMGetDlgCode(var msg: TWMGetDlgCode); begin inherited; // Ja, dieses Edit soll die TAB Taste "sehen" msg.Result := msg.Result or DLGC_WANTTAB; end;
Delphi-Quellcode:
procedure TfrmMAIN.FormCreate(Sender: TObject);
begin with TMyEdit.Create(self) do begin OnKeyDown := Edit1KeyDown; Parent := frmMAIN; end; end; |
Hallo Christian, 8)
eine sehr interessante Idee!!! Ich werde es Ausprobieren :D Danke Gruß Paul Jr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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