![]() |
Re: wenn edit nicht dem format entspricht dann ... ??
Alternativ kannste dir auch mal reguläre Ausdrücke anschauen. Das sollte das sein, was du suchst ;)
|
Re: wenn edit nicht dem format entspricht dann ... ??
was meinst du mit reguläre ausdrücke anschauen hast du da mal ein beispiel für mein problem z.b.?
|
Re: wenn edit nicht dem format entspricht dann ... ??
Reguläre Ausdrücke dienen als Schablonen für Strings. Man kann damit also entweder nach Teilstrings mit bestimmten Format in einem größeren String suchen, oder eben prüfen ob ein bestimmter String ein bestimmtes Format hat.
Je nach Delphi-Version brauchst du eine extra Komponente, die dir die Arbeit mit den Ausdrücken abnimmt. Beispiel für einen Ausdruck für die Uhrzeit ohne Sekunden (nicht selbstgeschrieben, es gibt ja Google):
Code:
Bis man die Dinger lesen kann, braucht es seine Zeit ;)
^([0-1]\d|2[0-3]|\d):[0-5]\d$
Ich denke mal, hier dürften recht viele Themen zu regulären Ausdrücken zu finden sein, einfach mal die Suchfunktion bemühen. |
Re: wenn edit nicht dem format entspricht dann ... ??
Hallo,
stehe gerade vor einem ähnlichen problem. die OH zu reg expr bei delphi ist ja sehr sehr spärlich, zumindest in version 5 ich möchte das ganze in Pos() benutzen also ala
Delphi-Quellcode:
nur wie muß [([0-9]){2}] in delphi ausschauen damit es in Pos() funktioniert ?
position := Pos(ListBox2.items[ccc] + ' [([0-9]){2}]' + FormatDateTime('hh', time),Memo1.Lines.Text);
an der stelle soll auf eine zweistellige zahl geprüft werden, das ganze ist der monatstag, aber das ist nicht so wichtig, mir kommt es nur darauf an das an dieser stelle eine zweistellige zahl steht hat da jemand eine idee ? nebenbei suche ich natürlich noch weiter bei google ;) |
Re: wenn edit nicht dem format entspricht dann ... ??
Zitat:
Delphi-Quellcode:
Allerdings wäre damit auch als Zeiteingabe '99.99.99' möglich. Also muß das erste Zeichen noch auf 0..2 eingegrenzt werden, das 4. auf 0..5 usw.
// Edit muß leer/richtig vorbesetzt sein, z.B. OI-Einstellung nicht auf Edit1
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key <> #8 then begin if length (Edit1.Text) < 8 then begin // ACHTUNG : hier ist Tastendruck noch nicht verarbeitet für Text, obwohl // Taste selber bereits verfügbar ! Deshalb "[2,5]" und "< 8" !! if length (Edit1.Text) in [2,5] then begin if not (key in[':']) then key := #0; end else begin if not (key in ['0'..'9']) then key := #0; end; end else key := #0; end; end; |
Re: wenn edit nicht dem format entspricht dann ... ??
Hai ihr,
warum nehmt ihr für einen Zeiteingabe nicht einfach einen TDateTimePicker? Dann hat man keinen Stress mit eingabeprüfungen und hat auch immer das vom Anwender in Windows eingestellt Zeitformat. OnKeyPress und Co ist dafür doch für die Füsse. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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