[gelöst] TEdit eingabe mit ENTER bestätigen?

Für Fragen rund um die Ide und zum Debugger
Antworten
heheracer
Beiträge: 54
Registriert: Mo 17. Nov 2014, 16:45

[gelöst] TEdit eingabe mit ENTER bestätigen?

Beitrag von heheracer »

Hallo, ich habe ein Programm geschrieben, wo man etwas in eine tedit box einbgeben muss. jetzt muss man aber immer mit der maus auf den button nebendran dürcken, enter geht nicht.
gibt es eine möglichkeit, den button zu "sagen", das er automatisch angewählt wird und wenn man enter drückt er bestätigt wird?
Zuletzt geändert von heheracer am So 1. Feb 2015, 13:59, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: TEdit eingabe mit ENTER bestätigen?

Beitrag von theo »

Ich würde einfach in OnKeyUp die Enter Taste im TEdit abfangen.

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: TEdit eingabe mit ENTER bestätigen?

Beitrag von Ally »

So kann man zur nächsten TAB-Position springen. Vielleicht hilft dir das ja weiter.

Code: Alles auswählen

procedure TEdit.KeyPress(var Key: char);
begin
  // Wenn Entertaste gedrückt wurde, zur nächsten TAB-Position springen.
  if Key = #13 then // #13 =Enter
  begin
    Key := #0; // Beep verhindern.
    Screen.ActiveForm.SelectNext(Screen.ActiveForm.ActiveControl, True, True);
  end;
end;

BeniBela
Beiträge: 309
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: TEdit eingabe mit ENTER bestätigen?

Beitrag von BeniBela »

Code: Alles auswählen

button.default:=true;

heheracer
Beiträge: 54
Registriert: Mo 17. Nov 2014, 16:45

Re: TEdit eingabe mit ENTER bestätigen?

Beitrag von heheracer »

BeniBela hat geschrieben:

Code: Alles auswählen

button.default:=true;

danke! genau das habe ich gesucht, lässt sich übrigens einfacher im objectinspector machen falls man die form nicht dynamisch erstellt.

heheracer
Beiträge: 54
Registriert: Mo 17. Nov 2014, 16:45

Re: TEdit eingabe mit ENTER bestätigen?

Beitrag von heheracer »

Ally hat geschrieben:So kann man zur nächsten TAB-Position springen. Vielleicht hilft dir das ja weiter.

Code: Alles auswählen

procedure TEdit.KeyPress(var Key: char);
begin
  // Wenn Entertaste gedrückt wurde, zur nächsten TAB-Position springen.
  if Key = #13 then // #13 =Enter
  begin
    Key := #0; // Beep verhindern.
    Screen.ActiveForm.SelectNext(Screen.ActiveForm.ActiveControl, True, True);
  end;
end;

das hat bei diesem problem nicht geholfen, aber trotzdem sehr sinnvoll wenn man mehrere tedit boxen hat. werd ich sicher noch brauchen, danke.

hab hier dieses Problem:

unit2.pas(60,26) Error: method identifier expected

was muss ich ändern? Key hab ich schon als char deklariert

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: [gelöst] TEdit eingabe mit ENTER bestätigen?

Beitrag von Ally »

Entschuldige bitte, es muss natürlich so aussehen:

Code: Alles auswählen

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);

heheracer
Beiträge: 54
Registriert: Mo 17. Nov 2014, 16:45

Re: [gelöst] TEdit eingabe mit ENTER bestätigen?

Beitrag von heheracer »

Ally hat geschrieben:Entschuldige bitte, es muss natürlich so aussehen:

Code: Alles auswählen

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);


auch das geht bei mir nicht

unit2.pas(55,31) Error: method identifier expected

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: [gelöst] TEdit eingabe mit ENTER bestätigen?

Beitrag von Ally »

Dann platziere doch mal ein neues TEdit und schreibe die folgenden Zeilen in's KeyPress-Ereignis.

Code: Alles auswählen

if Key = #13 then // #13 =Enter
begin
  Key := #0;
  Screen.ActiveForm.SelectNext(Screen.ActiveForm.ActiveControl, True, True);
end;

heheracer
Beiträge: 54
Registriert: Mo 17. Nov 2014, 16:45

Re: [gelöst] TEdit eingabe mit ENTER bestätigen?

Beitrag von heheracer »

Ally hat geschrieben:Dann platziere doch mal ein neues TEdit und schreibe die folgenden Zeilen in's KeyPress-Ereignis.

Code: Alles auswählen

if Key = #13 then // #13 =Enter
begin
  Key := #0;
  Screen.ActiveForm.SelectNext(Screen.ActiveForm.ActiveControl, True, True);
end;

ok der code von dir war schon richtig, ich hatte ihn auch so, aber es egth wohl nur wenn man im objectinspector unter ereignisse onkeypress geht. komisch, aber gut es funktioniert.

Antworten