Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - T-Edit und die Enter-Taste


ptronick - So 25.04.04 17:23
Titel: T-Edit und die Enter-Taste
Hi,
ich benutze in meinem Programm ein Edit-Eingabefeld.
Ich will eine Zahl hineinschreiben und dann mit Enter oder Return bestätigen.
Ich mach jetzt schon ewig am Objektinspektor rum, aber die "OnEnter"-Spalte
will nicht funktionieren. Das Programm ignoriert es einfach (glaub ich).

Hier mein Quelltext:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.edit1Enter(Sender: TObject);
begin
eigene:=edit1.text;                   { Einlesen der Variable "eigene"  } 
val(eigene,eigenem,code);        { Umwandeln in Integer }
erg:=erg-eigenem;                   { Arbeiten mit der neu gewonnen Zahl }
ANZEIGE;                                { Prozedur, die auf die Variable "erg" sehnsüchtig wartet }
end;


Wenn ich den Quelltext in nen Button schreib funktioniert es einwandfrei.
Danke fürs Lesen

Patrick

Moderiert von user profile iconPeter Lustig (17:24, 25.04.2004): Delphi-Tags hinzugefügt


Christian S. - So 25.04.04 17:28

Hallo!

Bei einem TEdit (T-Edit) :mrgreen:) wird das OnEnter-Ereignis nicht bei der Taste "Enter" ausgelöst, sondern wenn der Cursor im Edit-Feld platziert wird. Um auf die Entertaste zu reagieren, empfielt sich das OnKeyPress-Ereignis.

In diesem Ereignis prüfst Du:

Delphi-Quelltext
1:
if Ord(key) = vk_return then                    


Ist dies wahr, führst Du Deinen Code aus.

Mfg
Peter


ptronick - So 25.04.04 17:31

danke für die schnelle Antwort. Der Vorschlag klingt vielversprechend.
Aber wo soll ich ihn hineinschreiben?


Christian S. - So 25.04.04 17:32

Wie gesagt: Ins OnKeyPress-Ereignis des Edit-Feldes. Sollte im OI zu finden sein. Dort einfach die oben stehende Abfrage einfügen und in die Zweig, der bei true ausgeführt wird, Deinen Code.


ptronick - So 25.04.04 17:38
Titel: juhuu
es klappt!!!!!
Vielen Dank!!!
Jetzt bist du mein persöhnlicher Held des Tages!!!!


mstuebner - So 25.04.04 17:46
Titel: Re: T-Edit und die Enter-Taste
ptronick hat folgendes geschrieben:
Das Programm ignoriert es einfach (glaub ich).

Um das "Glaub ich" auszuschliessen kann man in Funktionen/Proceduren zu diesem Zwecke einen Breakpoint setzen. Stoppt Dein Programm dann an dieser Stelle nicht, dann wird der Code "Sicher" nicht ausgeführt.


ptronick - So 25.04.04 18:22

danke!


Coder - Sa 17.07.04 21:06

Hi
Danke es klappt.
Nur kommt immer das nervige "plong" (Fehlermeldung) wenn ich Enter drücke. Wenn ich den Button der mit Enter aufgerufen wird normal drücke kommt es nicht. Kann es daran liegen das ich nicht in ein Edit sonder in eine ComboBox schreibe?


StefanH - Sa 17.07.04 21:14


Delphi-Quelltext
1:
2:
3:
4:
5:
if Ord(key) = vk_return then
  begin
    key:=#0;
    ...
  end;


Coder - Sa 17.07.04 21:25

Delphi hat folgendes geschrieben:

Inkompatible Typen: 'Word' und 'Char'


BenBE - Sa 17.07.04 21:26

Kleine Anmerkung: Der folgende Code macht genau das gleiche:


Delphi-Quelltext
1:
If Key = #13 Then DoSomething;                    


Coder - Sa 17.07.04 21:30

Sorry, Sorry, war mein Fehler. Ich habe es nicht bei OnKeyPress sonder bei OnKeyDown hingeschrieben. :autsch: