![]() |
Uhrzeit
Moin
Ich habe hier ein formular wo ich ein edit fenster habe in dem ich eine Uhrzeit eingeben will (z.b.: 12:42) diese uhrzeit will ich dann in ein memo übergeben! Jetzt meine Fragen wie kann ich die eingabe gestalten und wie die ausgabe? Mit freundlichen Grüßen mentos112 |
Re: Uhrzeit
Mach's dir einfacher und nimm einen DateTimePicker. Bei dem stellst du die Kind-Eigenschaft auf dtkTime.
Die Zeit in ein Memofeld übertragen kannst du so:
Delphi-Quellcode:
MfG
MyMemo.Text := 'Eingegebene Uhrzeit:' + #32 + TimeToStr(MyDateTimePicker.Time);
Nachtrag: @ Flare: Keine Ahnung, hab's mir angewöhnt, Leerzeichen so zu anzugeben. |
Re: Uhrzeit
[ot]
Warum nimmst du #32 extra? ich hätte das Ganze so gemacht:
Delphi-Quellcode:
[/ot]
MyMemo.Text := 'Eingegebene Uhrzeit: ' + TimeToStr(MyDateTimePicker.Time);
Flare |
Re: Uhrzeit
Also so geht das nicht!
ich will ja die uhrzeit beliebig eingeben wenn jetzt 13 uhr ist will ichaber die uhrzeit von z.b. 09:36 eingeben! |
Re: Uhrzeit
So?
Delphi-Quellcode:
Oder soll in der Memo danach noch mehr eingeschrieben werdne oder steht schon mehr drin?
MyMemo.Text := 'Eingegebene Uhrzeit: ' + MyEdit.Text;
Flare |
Re: Uhrzeit
Das kannst du doch auch :roll: . Hast du dir schon die beiden netten kleinen Pfeilknöpfe rechts am/im DateTimePicker angeguckt? Außerdem kannst du auch mal mit der Maus reinklicken und dann mit der Tastatur die Zeit ändern.
|
Re: Uhrzeit
Oder einfach ein TEdit, da kannst du ja eine Eingabemaske angeben ... also sowas wie "09:99" (ich hoffe mal ":" ist kein Steuerzeichen), dann kannst du aber alles eingeben, also auch 52:69 ... damit ist wohl der Picker besser :roll:
|
Re: Uhrzeit
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Das hat wohl eher etwas mit VCL bzw. Controls zu tun. Ich verschiebe einfach mal. |
Re: Uhrzeit
Memo1.Text:=TimeToStr(DateTimePicker2.Time);
wenn ich das so habe dann bekomme ich immer nur die zeit heraus die im object inspector unter time steht aber nicht die die ich haben will und zwar direkt aus dem DateTimePicker2! außerdem noch die frage wie kann ich die uhrzeit mittels up/down in 5min schritte ändern?! mit freundlichen grüßen mentos112 |
Re: Uhrzeit
Zitat:
Hast Du schon versucht, wenn das Programm läuft eine andere Zeit einzugeben? |
Re: Uhrzeit
Delphi-Quellcode:
ja habe ich schon versucht
procedure TForm1.Button2Click(Sender: TObject);
begin Memo1.Text:=TimeToStr(DateTimePicker2.); Memo1.Lines.Add(ComboBox1.Text); end; |
Re: Uhrzeit
Delphi-Quellcode:
jungs das ist die lösung habe sie durch zufall herausbekommen!
procedure TForm1.Button2Click(Sender: TObject);
begin Memo1.Text:=TimeToStr(DateTimePicker2.Time); end; aber es steht immer noch die frage im raum wie mit up/down die zeit in 5 min schritten ändern kann bzw. wie kann ich es gestalten das der ":" stehen bleibt wenn ich die uhrzeit eingebe ohne up/down! mit freundlichen Grüßen mentos112 |
Re: Uhrzeit
sorry verschrieben
Delphi-Quellcode:
so muss es lauten!
procedure TForm1.Button2Click(Sender: TObject);
begin Memo1.Text:=TimeToStr(DateTimePicker2.datetime); end; |
Re: Uhrzeit
Ich würde mir genau überlegen, welche Eingabe denn der Anwendner wünscht.
IMHO ist dieses Scrollen der Werte uneffektiv, dauert einfach zu lange. Und nicht jeder Anwender weiß, wie er vom Std-Wert zum Minuten-Wert kommt, benutzt dann aus "Verzweiflung" die Maus. :zwinker: Wenn du also genau weißt wie die Eingabe zu erfolgen hat, weißt du im Prinzip auch was du nehmen musst. Ich persönlich habe mir angewöhnt Editfelder zu verwenden. Hier hat man sehr gute Möglichkeiten alles selbst zu steuern. Hier mal ein Beispiel:
Delphi-Quellcode:
Anhand dieses Beispiels könntest du sicherlich deine notwendigen Änderungen vornehmen...
procedure TmyForm_Time_Edit_1Press(Sender: TObject;
var Key: Char); var string1: string; lsText: string; // bestehender Eingabetext liTSPos: Integer; // Position von TimeSeparator begin string1 := Time_Edit_1.text; if key in [',', '.', ':'] then key := #58; //allgemeine Sperrung von allen Zeichen ausser //backspace, Enter, (-) , (,) , (.) , (:) und alle Zahlen if not (key in [#8, #13, #44, #48..#58]) then key := #0; //prüfen, ob die Eingabe nach dem Timeseparator > 5 ist if (Length(string1) > 0) and (string1[Time_Edit_3.Selstart] = ':') and (not (key in [#8, #13, #48..#53])) then begin key := #0; Windows.Beep(2000, 250); end; // nur ein TimeSeparator if (pos(#58, string1) > 0) and (key = #58) then key := #0; // kein TimeSeparator am Anfang if (Time_Edit_1.SelStart = 0) and (key = #58) then key := #0; //es sollen nur 2 Stellen hinter dem TimeSeparator eingegeben werden können { Ersetzen immer erlaubt } if (Time_Edit_1.SelLength = 0) then begin lsText := Time_Edit_1.Text; liTSPos := Pos(#58, lsText); if (liTSPos > 0) and (Time_Edit_1.SelStart > liTSPos) and (Length(lsText) - liTSPos >= 2) then begin if not (key in [#8]) then key := #0; Windows.Beep(2000, 250); end; // (Time_Edit_1.SelLength = 0) end; end; (Minuszeichen erlaubt, max 24 Std oder auch mehr?, usw.) Eine Überlegung wäre noch, ob du den Timeseparator vom BS nimmst, oder so wie ich es hier fest vorgegeben habe (#58=Doppelpunkt). |
Re: Uhrzeit
sorry aber in diesem quelltext sehe ich irgentwie net durch was hast du denn auf der form für edit bzw. buttons? oder besitz diese gar nix davon!
mit freundlichen Grüßen menos112 |
Re: Uhrzeit
auf der Form gibt es dieses eine Editfeld... (Time_Edit_1)
Dieses eine Editfeld ist nun so ausprogrammiert, dass generell nur ganz bestimmte Eingaben möglich sind. Bedeutet: du kannst z.B. versuchen einen Buchstaben einzutippen und es "piepst" nur... "Gesteuert" wird das ganze über das Event -> OnKeyPress. Die 3 Variablen werden benötigt, um den eingegebenen String "aufzubröseln"... Also einfach mal ein Editfeld nehmen, meinetwegen umbenennen in "Time_Edit_1" und dann im OI unter "Ereignisse" bei "OnKeyPress" ein Doppelklick machen und zw. begin...und...end den Code einfügen... Testen und nachdenken, was du anders haben möchtest. Besser: wie will es er Anwender... :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 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