AGB  ·  Datenschutz  ·  Impressum  







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

Eingabe von hh:min > 24h

Ein Thema von hoika · begonnen am 31. Jan 2009 · letzter Beitrag vom 1. Feb 2009
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

Eingabe von hh:min > 24h

  Alt 31. Jan 2009, 15:38
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
Heiko
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Eingabe von hh:min > 24h

  Alt 31. Jan 2009, 16:28
Zitat von hoika:
ich möchte Stunden > 24h eingeben.

...

...nur gültige Stunden eingeben können.
Definiere: gültige Stunden (zweistellig, dreistellig, ...)
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#3

Re: Eingabe von hh:min > 24h

  Alt 31. Jan 2009, 16:55
Wenns nur Stunden, also BSP: "360" ist, dann reicht doch nen Editfeld
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Eingabe von hh:min > 24h

  Alt 31. Jan 2009, 17:42
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
Felix Alter
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Eingabe von hh:min > 24h

  Alt 31. Jan 2009, 22:35
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Eingabe von hh:min > 24h

  Alt 31. Jan 2009, 23:27
Ich würde sowohl den Doppelpunkt als auch den Dezimalseparator zulassen.
So kann man auch Industriestunden eingeben.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Eingabe von hh:min > 24h

  Alt 1. Feb 2009, 10:02
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Eingabe von hh:min > 24h

  Alt 1. Feb 2009, 10:33
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
Felix Alter
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Eingabe von hh:min > 24h

  Alt 1. Feb 2009, 10:37
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
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#10

Re: Eingabe von hh:min > 24h

  Alt 1. Feb 2009, 10:38
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
  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 12:44 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