Delphi-PRAXiS

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 Eingabe von hh:min > 24h (https://www.delphipraxis.net/128522-eingabe-von-hh-min-24h.html)

hoika 31. Jan 2009 14:38


Eingabe von hh:min > 24h
 
Hallo #,

ich möchte Stunden > 24h eingeben.
Der TDateTimePicker erlaubt das nicht (logisch, ist ja auch nur die Uhrzeit).
Mit TMaskEdit sieht das irgendwie blöd aus.

Der Nutzer soll schon bei der Eingabe nur gültige Stunden eingeben können.

Kennt jemand so eine Komponente ?


Danke


Heiko

omata 31. Jan 2009 15:28

Re: Eingabe von hh:min > 24h
 
Zitat:

Zitat von hoika
ich möchte Stunden > 24h eingeben.

...

...nur gültige Stunden eingeben können.

Definiere: gültige Stunden (zweistellig, dreistellig, ...)

BullsEye 31. Jan 2009 15:55

Re: Eingabe von hh:min > 24h
 
Wenns nur Stunden, also BSP: "360" ist, dann reicht doch nen Editfeld ;)

FAlter 31. Jan 2009 16:42

Re: Eingabe von hh:min > 24h
 
Hi,

Normales Edit nehmen und dann einfach per Hand umwandeln...

Ungefähr so

Delphi-Quellcode:
Str := TimeEdit.Text;
p := pos(':', Str);

if p > 0 then
  TheTime := StrToFloat(Copy(Str, 1, p-1)) / HoursPerDay +
    StrToFloat(Copy(Str, p+1, length(str)) / MinsPerDay
else
  TheTime := StrToFloat(Str) / HoursPerDay;
Mfg
FAlter

hoika 31. Jan 2009 21:35

Re: Eingabe von hh:min > 24h
 
Hallo,

so, jeder kennt doch das TNumEdit

nur Float-Werte eingebbar, Buchstaben werden ignoriert.

Das ganze will ich für hhh:min

Also Stunden 3-stellig, Minuten max. 2 stellig.

ein TDateTimePicker für Stunden >24 halt.


Heiko

sx2008 31. Jan 2009 22:27

Re: Eingabe von hh:min > 24h
 
Ich würde sowohl den Doppelpunkt als auch den Dezimalseparator zulassen.
So kann man auch Industriestunden eingeben.

hoika 1. Feb 2009 09:02

Re: Eingabe von hh:min > 24h
 
Hallo,

das mache ich ja jetzt mit einem TEdit auch so.
Es wird aber erst am Ende geprüft, ob der eingegebene String
tatsächlich eine gültige Zeit ist.

Das wollte ich ändern.


Heiko

FAlter 1. Feb 2009 09:33

Re: Eingabe von hh:min > 24h
 
Hi,

und was ist das Problem? Lass den Benutzer eingeben was er will und prüfe es im OnExit, also beim Verlassen des Edits. Während meiner Eingabe will ich auch nicht gleich bei einem Tippfehler genervt werden, dass das Zeichen nicht geht oder so.

Mfg
FAlter

Hawkeye219 1. Feb 2009 09:37

Re: Eingabe von hh:min > 24h
 
Hallo Heiko,

vielleicht kannst du diese Idee verwenden.

Falls es sich um einen Eingabedialog mit mehreren Feldern handelt, sollte der Anwender wirklich bei der Eingabe nicht unnötig behindert, aber dennoch über Fehleingaben informiert werden. Im verlinkten Code geschieht dies über eine farbliche Kennzeichnung des jeweiligen Eingabefelds. Die Übernahme der Daten aus dem Dialog darf nur dann erfolgen, wenn in allen erforderlichen Feldern gültige Werte stehen. Ob ein Wert gültig ist oder nicht, könnte beispielsweise der OnChange-Code in der Tag-Eigenschaft der Edit-Komponente hinterlegen. So brauchst du beim Schließen des Dialogs nur alle Tag-Werte zu überprüfen.

Gruß Hawkeye

Reinhard Kern 1. Feb 2009 09:38

Re: Eingabe von hh:min > 24h
 
Zitat:

Zitat von hoika
Hallo,

das mache ich ja jetzt mit einem TEdit auch so.
Es wird aber erst am Ende geprüft, ob der eingegebene String
tatsächlich eine gültige Zeit ist.

Das wollte ich ändern.

Heiko

Hallo,

über solche Eingaben habe ich mich schon oft geärgert, weil sie sehr umständlich zu bedienen sind, das sollte also gut durchdacht werden. Beispiel: wenn alle Zwischenergebnisse gültig sein müssen, dann kann man nicht irgendwo eine Ziffer eingeben und dafür eine andere löschen, sondern muss zuerst durch Löschen Platz machen. Eine vorhandene Zahl einfach übertippen durch Linksschieben geht auch nicht. Sind alle Stellen bereits besetzt, kann man garnichts eingeben ausser DEL.

Gruss Reinhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 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