AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE
Thema durchsuchen
Ansicht
Themen-Optionen

Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

Ein Thema von Foxgrove · begonnen am 10. Sep 2005 · letzter Beitrag vom 13. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
Foxgrove

Registriert seit: 10. Sep 2005
Ort: Schwäbisch Gmünd
20 Beiträge
 
Delphi 3 Standard
 
#1

Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 15:55
Ich komme von VISUALBASIC und möchte nun in DELPHI auch
von Feld zu Feld weiterspringen (nur mit abschließendem ENTER)
ohne Maus oder TAB-Taste.
Mit dem letzten EINGABETEXT-Feld gleich die Rechnung auslösen
und das Ergebnis ausgeben ... LÖSCHEN bzw. NEUSTART aktivieren.

Geht in VB6 mit Ereignis ONKEYPRESS und dann mit der Abfrage:
If KeyAscii = 13 then
Feldsonundso.SETFOCUS
End if

Wie geht dies in DELPHI ?
  Mit Zitat antworten Zitat
Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#2

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 15:58
HiHo,

dein Form hat das Event OnKeyPress. Darin könntest du auf die Entertaste prüfen und entweder die TAB auslösen, oder aber manuell den Fokus der Felder weitersetzen.

MfG,

hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#3

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:09
Die Eingabefelder (TEdit, oder?) sollten auch OnKeyPress o.ä. haben. Das letzte Feld könnte dort dann den Button betätigen (TButton.Click), der Rest setzt den Focus auf den Nachfolger.

/edit. Musste man beim Form nicht noch irgendwas setzen, damit die Key-Eregignisse ausgelöst werden?
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:13


Folgendes ins OnKeyPress von dem ersten Edit (zB Edit1):

Delphi-Quellcode:
If Key=#13 then
begin
Edit2.SetFocus;
end;
Damit setzt Du den Mauszeiger ins nächste Edit (hier Edit2). Kannst Du beliebig verändern.

edit: Einen Knopfdruck oder Funktion kannst Du natürlich auch anstelle des "Edit2.SetFocus" ausführen:
Delphi-Quellcode:
If Key=#13 then
begin
Button1.Click;
end;
Key 13 ist halt die Entertaste - klar.
mfg zecke
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:24
Zitat von zecke:
...
Folgendes ins OnKeyPress von dem ersten Edit (zB Edit1):

Delphi-Quellcode:
If Key=#13 then
begin
Edit2.SetFocus;
end;
...
Das macht dann aber *beep*... Ich würde das hier bevorzugen:
Delphi-Quellcode:
If Key = #13 then
begin
  Key := #0;
  Edit2.SetFocus;
end;
Jan
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:28
was soll das machen? Also bei mir passiert nichts, als das der Cursor ins nächste Edit springt -_-

Das gleiche trage ich in das OnKey-dings des zweiten Edits und so hüpfe ich nur mit der Enter-Taste durch Programm, aber ein *beep* kommt da nicht -_-
mfg zecke
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#7

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:32
Mit key:=#0 wird verhindert, dass die Taste noch weiterverarbeitet wird. Man könnte es aber noch weiter vereinfachen:
Delphi-Quellcode:
if Key = #13 then begin
  if Sender = Edit1 then Edit2.SetFocus
  else if Sender = Edit2 then Edit3.Setfocus
  {...}
  else if Sender = Editx then Button1.Click; //Editx ist das letzte Eingabefeld
  key:= #0;
end;
Damit braucht man nur eine Methode für alle Edit-Felder.

/edit: Key:= #0 vergessen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:33
Damit Hier im Forum suchenWM_NEXTDLGCTL geht's.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:36
Warum denn so kompliziert?

Einfach allen Editfeldern die Selbe OnKeyPress Methode zuweisen und dann:
Delphi-Quellcode:
procedure TForm1.AllEditKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = Chr(VK_RETURN) then // Wenn Entergedrückt wurde
  begin
    if (Sender = edt_Edit4) then
    begin
      //Berechnung starten
    end
    else
    begin
      Self.Perform(WM_NEXTDLGCTL, 0, 0); // Springe zum nächten Control.
    end;
    Key := #0;
  end;
end;
In diesem Beispiel wird davon ausgegangen das edt_Edit4 das letzte Editfeld ist.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Mit ENTER-Taste von EDITFeld zu EDITFeld und zur AUSGABE

  Alt 10. Sep 2005, 16:41
@ Sharky:

Bei deinem Bsp. muss man dann auch darauf achten, dass die Tab-Reihenfolge (Begriff vergessen ) richtig, also wie gewünscht ist oder? Weil er springt nach dieser Richtlinie, also nach der Tab-Reihenfolge weiter oder nicht

edit: unmögliches deutsch
mfg zecke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz