Einzelnen Beitrag anzeigen

Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#1

Dummer Schleifen Fehler!

  Alt 4. Jul 2007, 19:52
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
  Mit Zitat antworten Zitat