![]() |
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 21:27 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