Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TABULATOR und Edit-Feld (https://www.delphipraxis.net/4472-tabulator-und-edit-feld.html)

Gast 30. Apr 2003 16:00


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.

Alexander 30. Apr 2003 16:17

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;

Christian Seehase 30. Apr 2003 19:16

Moin Paul jr.

eine Möglichkeit:

Erstelle Dir eine eigenen TEdit Komponente, in der Du die Tabulatortaste abfängst:

Delphi-Quellcode:
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;
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.

Delphi-Quellcode:
procedure TfrmMAIN.FormCreate(Sender: TObject);
begin
  with TMyEdit.Create(self) do
  begin
    OnKeyDown := Edit1KeyDown;
    Parent   := frmMAIN;
  end;
end;

Gast 2. Mai 2003 08:24

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