Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Übernahme der Eingabe mit ENTER (https://www.delphipraxis.net/67462-uebernahme-der-eingabe-mit-enter.html)

jmit 14. Apr 2006 18:35


Übernahme der Eingabe mit ENTER
 
Hallo,

ich habe in meinem Programm ein Eingabefeld vom Typ TEdit. Nach Eingabe eines Wertes möchte ich diesen mit der Enter-Taste übernehmen, um weitere Berechnungen bzw. Ausführungen im Programm zu machen. Leider bekomme ich mit KeyPress nicht das gewünschte Ergebnis. Über die Suche habe ich noch nichts passendes gefunden.

Vielen Dank im Voraus

Gruß Jörg

faux 14. Apr 2006 18:36

Re: Übernahme der Eingabe mit ENTER
 
Hallo!

Mache es mit KeyDown und überprüfe den Wert auf 13.

Delphi-Quellcode:
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 13 then
  begin
    //
    // Code
    //
  end;
end;
Grüße
Faux

EDatabaseError 14. Apr 2006 18:36

Re: Übernahme der Eingabe mit ENTER
 
Mach in dem Edit das onKeyDown Event folgendermaßen:

Delphi-Quellcode:
begin
if key = 13 then
begin
//mach dann des.
end;
end;
Mfg
Tobi

(Man da war einer schneller)

MrKnogge 14. Apr 2006 19:14

Re: Übernahme der Eingabe mit ENTER
 
Wenn du am schluss noch den key auf #0 setzt, dann verhinderst du den WindowsBeep, der normalerweise erklingt.
Delphi-Quellcode:
if key = 13 then
begin
// tue dies und jenes
key := #0;
end;
gruss

PS: Beim nächsten mal bitte die Suche verwenden.

faux 14. Apr 2006 19:16

Re: Übernahme der Eingabe mit ENTER
 
Zitat:

Zitat von MrKnogge
Wenn du am schluss noch den key auf #0 setzt, dann verhinderst du den WindowsBeep, der normalerweise erklingt.

In diesem Fall musst du Key auf 0 setzen, da wir uns in KeyDown befinden, welches den Parameter Key als Word verlangt.

Grüße
Faux

Khabarakh 14. Apr 2006 19:57

Re: Übernahme der Eingabe mit ENTER
 
Zitat:

Zitat von EDatabaseError
(Man da war einer schneller)

Ähm... und warum schickst du dann deinen Beitrag noch ab :shock: ?
Es ist ja nicht so, dass mich der rote Kasten noch nie gelinkt hat, aber da du den Text nicht dazueditiert hast, hast du faux' Antwort wohl noch vor dem Abschicken gesehen :| .
Und da dein Beitrag weder lang ist noch irgendwelchen Mehrwert im Vergleich zu faux' Post enthält, ist er eigentlich reiner Spam.

@jmit (und alle anderen ;) ): Solange du den User nicht direkt darauf hinweist, finde ich es nicht intuitiv, in einem Edit Enter drücken zu müssen. Besser wäre ein "Berechnen"-Button daneben mit Default=true. Dann brauchst du a) nicht einmal selbst Code schreiben, b) dich auch nicht um den Beep kümmern und c) dich nicht um verwunderte User sorgen.

Balu der Bär 14. Apr 2006 20:01

Re: Übernahme der Eingabe mit ENTER
 
Genau wie dein Beitrag auch.

Edit: Nur als Hinweis, Khabarakh hat seinen Beitrag gerade editiert, vorher fand sich in ihm der untere Teil nicht an, deshalb wies ich ihn darauf hin das sein Post ebenfalls nur Spam ist.

3_of_8 14. Apr 2006 20:12

Re: Übernahme der Eingabe mit ENTER
 
BTW: key:=0; nützt nix. Zuweisung geht nur im OnKeyPress, wenn ich mich nicht irre.

Und, kann man im OnKeyPress nicht auch mit #13 arbeiten?

Nachtrag: Ja, das geht:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
showmessage('Blubb!');
key:=#0;
end;
end;

Khabarakh 14. Apr 2006 20:17

Re: Übernahme der Eingabe mit ENTER
 
@Balu: D'oh, du warst eine Minute zu schnell ;) . Den Rest hatte ich einfach vergessen, Alzheimer fängt wohl schon an. Jedoch würde ich grundsätzlich auch einen vollkommenen Offtopic-Beitrag schreiben, um auf solche sinnlosen Beiträge zu reagieren. Oder sollten in Zukunft alle "Benutze doch nächstes Mal bitte die Suche"-Beiträge sofort gelöscht werden?
Aber wenn, wie faux mir geschrieben hat, EDataBaseError wirklich editiert hat und es sich um einen Forenbug handelt, ist der obere Teil meines Beitrages natürlich null und nichtig.

@3_of_8: faux hat doch schon die Methodensignatur gepostet, daran kannst du erkennen, dass Key ein Refernzparameter ist.

3_of_8 14. Apr 2006 20:19

Re: Übernahme der Eingabe mit ENTER
 
Das Ding kann noch so sehr ein Pointer auf Key sein, es funktioniert so einfach nicht. Nur in OnKeyPress. Ich habs gerade eben getestet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz