1.Duchlauf Ungültiges Zeichen wird entfernt, falls vorhanden!
2.Durchlauf--> erneuter Aufruf der Procedure weil der Inhalt des Edt Feldes geändert wurde --> Edt_.Text := Ausgabe;
Jetzt findet er kein Falsches Zeichen mehr und müsste beenden
3.Duchlauf --> Nach dem letzten End spring der Cursor an das vorletzte End und die Procedure wird erneut ausgeführt
mit Falschen i Werten!!
Das heißt i hat schon den Wert z.B. 5 und geht über die Länge von Ausgabe hinaus, und somit kommt eine Zugriffsverletzung!!
Aber Warum???????
Delphi-Quellcode:
procedure TForm1.Edt_Change(Sender: TObject);
var i: integer;
Ausgabe: String;
Begin
Ausgabe := Edt_.Text;
For i:= 1 to length(Ausgabe) do
Begin
If Ausgabe[i] <> '' then
If (Ausgabe[i] <> ' ') and
(Ausgabe[i] <> '.') and
(Ausgabe[i] <> '-') then
Begin
showmessage('Ungültige(s) Zeichen in der Eingabe!');
Delete(Ausgabe,i,1);
Edt_.Text := Ausgabe;
End;
End;
End;//Edt_Change