AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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

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
 
#2

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
 
#3

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
 
#4

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
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 23:13
Wir hatten mal eine Eingabemaske, die zur schnellen Erfassung von eingesendeten Briefen diente, standardisierte Fälle, viele. Dort sollte gemäß Kundenwunsch alles mit Enter funktionieren. Es gab offenbar Mitarbeiter, die es gewohnt waren, so zu arbeiten. Die Umsetzung war dann glaub ich so, dass Enter und Tab irgendwie gleichwertig funktionierte. "Alles" funktionierte mit Enter. Ein Memofeld war allerdings nicht dabei. Und das wäre die Situation die Du umsetzen möchtest?

Es wären Verfahren mit Shift Enter oder Alt Enter wie bei Word oder Excel denkbar. In Excel ist ein Zeilenumbruch innerhalb einer Zelle glaub ich Alt Enter. Also quasi-Standard.

Alternativ fällt mir spontan ein, dass man mehrfaches Enter als Ausstieg definieren könnte, 2x oder 3x. Geht in < 1/3 Sekunde. Daran kann man sich leicht gewöhnen und muss die Finger auf der Tastatur nicht umsetzen bzw. braucht seine Gewohnheit nicht ändern. Und ein Memoeintrag, der 3 Zeilenumbrüche erfordert, wäre vermutlich auch nie nötig.

Die Mitarbeiter sind damals wirklich mit einem Affenzahn durch das Formular gerattert. 2x Enter zum Verlassen der Memobox oder 3x wäre vielleicht eine pragmatische Lösung.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#6

AW: Enter oder nicht Enter...

  Alt 5. Jun 2022, 23:21
Zitat:
Dort sollte gemäß Kundenwunsch alles mit Enter funktionieren. Es gab offenbar Mitarbeiter, die es gewohnt waren, so zu arbeiten
Bei uns auch noch.
Scheint zu DOS-Zeiten (Turbo Pascal) öfters mal so gewesen zu sein.

Für die Eingabe vieler Zahlen ist es so einfacher, das Enter im Nummerblock zu nehmen (Tab ist dort soooo weit weg),
genauso wie eben das [+] oder [=] bei Taschenrechnern/Rechenmaschinen, welches oft auch an dieser Stelle war.


Am Einfachsten via KeyPreview allgemein in der Form abfangen.
Bei Memos Key auf 0 setzen (außer wenn zusätzlich STRG gedrückt wurde), um die Standard-Behandlung des Enter dort zu unterbinden.
Besser bereits im KeyDown, anstatt im KeyPress.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Jun 2022 um 23:23 Uhr)
  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, 23:54
Die Standardfunktionalität von <Return> in einem Memo würde ich nicht entfernen (zumindest nicht wenn WantReturn auf True steht). Das wird nach 35 Jahren Windows einfach erwartet. Für die anderen Controls kann man das ja machen und bei <Enter> bzw. <Return> in das nächste Eingabefeld springen. Allerdings würde ich das vorhandene <Tab>-Verhalten dann auch nicht wegnehmen. Viele haben sich ja mittlerweile daran gewöhnt und jüngere würden kaum auf die Idee kommen, mit <Return> oder <Enter> zum nächsten Control zu wandern.

So gesehen ist das Verlassen des Controls - insbesondere des Memos - ein guter Hinweis für den Abschluss der Eingabe in dem Control. Da bietet sich auf den ersten Blick das OnExit-Event an. Der wird zwar nicht getriggert, wenn das Control das einzige mit TabStop = True ist, aber das ist in der Regel ja eher selten der Fall.

Fazit: Bei einem Memo mit WantReturn = True würde ich das <Return> dem Memo überlassen (schließlich fragt es ja explizit danach), während bei anderen Controls bei <Return> das nächste Control angesprungen wird. In allen Fällen sollte die Auswertung im OnExit passieren. Damit bekommt man dann auch die Fälle mit, bei denen der Anwender per Maus, Shortcut oder Accelerator zu einem anderen Control wechselt. Für Spezialfälle wie Wechsel zu einem anderen Form oder einer anderen Anwendung müsste man halt festlegen, ob das als Eingabeabschluss gewertet werden soll oder nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#8

AW: Enter oder nicht Enter...

  Alt 6. Jun 2022, 00:02
Nja, kann man sich drüber streiten, ob MultiLine-Edits das Enter normal behandeln und z.B. Strg+Enter zum Verlassen,
oder andersrum, damit alle Controls sich konsistent verhalten, als Enter überall gleich und der Zeilenumbruch mit Strg+Enter, so wie es einige Programme ebenfalls machen.
OK, ICQ ist tot, aber da war es auch so, also Enter zum Senden (für Weiter) und Strg+Enter für Zeilenumbruch.

So oder so, es ist vieles Möglich.




Gut, bei "uns" stört es nicht, da Memos nicht direkt zur Eingabe genutzt werden und es demnach nur ein Enter gibt (das wie Tab).
(zum Bearbeiten geht es dafür in ein Edit-Fenster, bei Doppelklick oder beim Drücken von Buchstaben/Zahlen, bzw. F2)




Vermehrt fällt mir auch auf, dass Gerätehersteller (Tastaturen und Notebooks) auch die Tastaturnutzung erschweren ... muß alles nur noch Touch sein.
Die Kontextmenü Taste fehlt der ist nur noch zusammen mit Fn und unmöglichen Fingerverränkungen nutzbar,
sowie auch die Tasten wie Drucken und PageScroll versteckt sind. und ich glaube [Pause] nutzt sowieso kaum noch ein Programm.
Dafür sind die Multimedia-Tasten direkt nutzbar, wobei oft nicht mehr als Einzeltaste, sondern alternativ stantardmüßig aktiv über die F-Tasten gelegt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Jun 2022 um 00:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:52 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