![]() |
Re: Dummer Schleifen Fehler!
das ganze mal ordentlich:
Delphi-Quellcode:
@Marabu: Natürlich hast du recht. Aber auch OnChange sollte man nicht außer acht lassen da per Strg + V oder Context-Menü und einfügen aus der Zwischenablage ungewollte Zeichen eingefügt werden können.
procedure TForm1.Edt_Change(Sender: TObject);
var i, lLen : integer; lDst, lSrc : String; begin lLen := 0; lSrc := Edt_.Text; SetLength(lDst, Length(lSrc)); for i := 1 to Length(lSrc) do begin if (lSrc[i] in [' ', '.', '-']) then begin inc(lLen); lDst[lLen] := lSrc[i]; end; end; if (lLen <> Length(lSrc)) then begin ShowMessage('Ungültige(s) Zeichen in der Eingabe!'); Edt_.Text := copy(lDst, 1, lLen); end; end; |
Re: Dummer Schleifen Fehler!
Wobei ich dann doch marabus Lösung bevorzugen würde (20 * ShowMessage ist irgendwie nervig, gell?)
|
Re: Dummer Schleifen Fehler!
Hab gerade das mal alles durchgetestet!!
Wenn man jetzt natürlich 10 Falsche Zeichen per Copy 'n' Paste einfügt kommt 10 mal Falsche Eingabe!! Ist auch net so toll! |
Re: Dummer Schleifen Fehler!
Ist ja auch kein Wunder, weil du die Message box bei jedem Schleifendurchlauf auslöst.
Du kannst aber in der function eine Boolean-Variable deklarieren, die du am Anfang der function auf false setzt. Wenn ein Zeichen gefunden wird setzt du die Variable auf True. Nach der Schleife prüfst du dann, welchen Wert die Variable hat. Wenn sie den Wert true hat, zeigst du die Messagebox. |
Re: Dummer Schleifen Fehler!
Nachdem man die Zeichen gelöscht hat, kommt es vor das der "leere" String leerzeichen enthält!!
Also meine Frage, wie kann man überprüfen ob ein String nur aus Leerzeichen besteht??? Mit einer For Schleife und einem Booleschen Wert ist das ja eigentlich nicht realisierbar weil der String ja aus 5 Zeichen bestehen kann wovon die ersten vier LeerZeichen sind und eins Ein anderes Zeichen sein kann! |
Re: Dummer Schleifen Fehler!
du könntest einfach die Leerzeichen zählen und wenn es genau soviel Leerzeichen sind wie der gefilterte String lang ist und es mehr als 0 Leerzeichen sind dann machst du einen Leerstring draus.
|
Re: Dummer Schleifen Fehler!
Dafür gibt es die Funktion
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 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