AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Enter oder nicht Enter...

Ein Thema von Delbor · begonnen am 5. Jun 2022 · letzter Beitrag vom 7. Jun 2022
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#1

Enter oder nicht Enter...

  Alt 5. Jun 2022, 16:08
Delphi-Version: 11 Alexandria
Hi zusammen

Mein Programm startet Pdfs von Festplatte und zeigt sie in einem Fremdprogramm an. Über eine Eingabemaske, die Edits, Compos, einen DateTimepicker und ein Memo enthält, generiere ich Records für eine DB. Das funktioniert soweit schon mal, aber der Haken ist: Bei allen diesen Feldern frage ich die Entertaste ab; wenn diese gedrückt wurde, ist die Eingabe beendet, der Eintrag wird (noch nicht) erfasst und der Focus weitergereicht. Das 'Problem' dabei ist: die Entertaste erzeugt im Memo einen Zeilenumbruch - ein Verhalten, das User wohl mehr oder weniger erwarten, und deshalb auch nicht geändert werden soll. Also muss ich wohl das Ende der Eingabe anders behandeln. Der erste Gedanke heisst hier: ShortCut, also sowas wie Ctrl(Strg) + Enter.

Ich denke, da komme ich um eine Tastenkombination nicht herum. Wichtig dabei ist mir nur, dass sich der User keine exotischen Kürzel merken oder sogar einen 'wilden Fingertanz' auf der Tastatur aufführen muss (zB. Q+1 und l+_ gleichzeitig drücken)

Hat jemand Vorschläge?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
695 Beiträge
 
Delphi 12 Athens
 
#2

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 16:25
...die Edits, Compos, einen DateTimepicker und ein Memo enthält...
Wieso arbeitest Du nicht mit der Tab-Taste und reagierst auf das verlassen des "Felds"?
Roland
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
902 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 16:43
Als Denkanstoß: Wird häufiger ein Zeilenumbruch in dem Memo vom User "erwartet", oder das Weiterspringen ins nächste Eingabefeld?

Bei WhatsApp im Browser ist es z.B. so, dass ein "Enter" bei der Eingabe das bisher getippte abschickt. Möchte man in der Nachricht eine neue Zeile beginnen, muss man Shift+Enter benutzten. Das ist im Grunde konsistent zu Word, wenn man "Nachricht" mit "Absatz" gleichsetzt. Das könnte bei dir ggf. auch passen, wenn Absatz = Eingabefeld.

Wäre das eine Option bei dir?
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 18:35
Hi zusammen

Die Tab-Taste als Ersatz für die bisherige Entertaste? Allerdings ist es nicht unbedingt leicht, den bisherigen Code zu ersetzen - zumindest hab ich vorerst nichts gefunden (Embarcadero Wicki). Meine bisherige Umsetzung:
Delphi-Quellcode:
procedure TOfficerAlexMain.AlexFilePropertyFrame1Edi_DokuNameKeyPress(Sender: TObject; var Key: Char); // Dokuname Key = vkTab
begin
  if Key = #13 {vkTab} then
  begin
    FInsertPdfDocument.DokuName:= AlexFilePropertyFrame1.Edi_DokuName.Text;
    AlexFilePropertyFrame1.Edi_DokuName.Color := clYellow;
    AlexFilePropertyFrame1.Edi_DocThema.SetFocus;
  end;
end;
Dieser vkTab ist allerdings ein Word. Soviel ich weiss, wäre das virtuellle Tastenkürzel in Windows VK_Tab, bin mir dessen aber nicht mehr sicher.
Aber da ist doch noch eine grössere Codesammlung der letzten Jahre...

Ich habe bei Embarcadero aber auch eine key-Liste mit char-werten gesucht, aaber ich denke, das war wohl derfalsche Suchbegriff.


Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
mmw
(Gast)

n/a Beiträge
 
#5

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 19:12
Hallo,

eine Liste bzw. die entsprechende Unit wäre hier

https://docwiki.embarcadero.com/Libr...System.UITypes

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 19:13
Tab ist unter Windows die Standard-Taste zum Fokuswechsel, da muss man im Normalfall nichts selbst programmieren. Aber falls es doch notwendig werden sollte und es unbedingt im Keypress-Event sein muss, versuch es mal mit #9.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#7

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 21:23
Vielleicht schaust du mal rein: Deutsche CodeRage 2022 am 14. Juni 2022 um 14:00 - 14:45 Uhr

Zitat:
Observer - simpel und elegant
Um auf Eingaben zu reagieren schreiben wir in Delphi üblicherweise Event-Handler. Doch gibt es noch andere Wege, die oft einfacher, flexibler und wesentlich eleganter sind. Egal ob <Tab> oder <Enter>, ob Änderung oder Validierung. Für viele VCL-Controls braucht es dafür nur einen Einzeiler - und alles ganz ohne Events.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
711 Beiträge
 
Delphi 12 Athens
 
#8

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 18:21
Hi zusammen

Mein Programm startet Pdfs von Festplatte und zeigt sie in einem Fremdprogramm an. Über eine Eingabemaske, die Edits, Compos, einen DateTimepicker und ein Memo enthält, generiere ich Records für eine DB. Das funktioniert soweit schon mal, aber der Haken ist: Bei allen diesen Feldern frage ich die Entertaste ab; wenn diese gedrückt wurde, ist die Eingabe beendet, der Eintrag wird (noch nicht) erfasst und der Focus weitergereicht. Das 'Problem' dabei ist: die Entertaste erzeugt im Memo einen Zeilenumbruch - ein Verhalten, das User wohl mehr oder weniger erwarten, und deshalb auch nicht geändert werden soll. Also muss ich wohl das Ende der Eingabe anders behandeln. Der erste Gedanke heisst hier: ShortCut, also sowas wie Ctrl(Strg) + Enter.

Ich denke, da komme ich um eine Tastenkombination nicht herum. Wichtig dabei ist mir nur, dass sich der User keine exotischen Kürzel merken oder sogar einen 'wilden Fingertanz' auf der Tastatur aufführen muss (zB. Q+1 und l+_ gleichzeitig drücken)

Hat jemand Vorschläge?

Gruss
Delbor
Benutze doch einen Button mit Default = true, der feuert wenn irgendwo auf dem Form Enter/Return gedrückt wird, soweit das aktive Control die Taste nicht selbst bearbeiten will. TMemo/TDBMemo tut das, da brauchst Du also keine Sonderbehandlung.

Meiner (unbescheidenen) Meinung nach sollten Daten nur gespeichert werden, wenn der Benutzer das explizit anfordert. Das macht es einfacher, Eingabefehler zu erkennen und zu korrigieren bevor sie in der Datenbank landen.
Peter Below
  Mit Zitat antworten Zitat
Antwort Antwort


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