Thema: Delphi Fehlersuche

Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#15

Re: Fehlersuche

  Alt 7. Apr 2009, 16:15
Hallo,

das kann nicht gehen:
y:= StrToInt(Copy(Edit1.Text,0,1)); Ein String fängt bei 1 an und nicht bei 0 (bzw. in Pascal steht/stand im nullten Byte die Länge des Strings, das ist hier aber sicherlich nicht der gewünschte Wert).
Vorschlag:
y:= StrToIntDef(Copy(Trim(Edit1.Text),1,1),1); Zuerst mal alle Leerzeichen wegwerfen (Trim).
Vom Rest das erste Zeichen nehmen (Copy 1,1).
Wenn das schief geht wird eine 1 geliefert (StrToIntDef)
Der Vorgabewert kann natürlich geändert werden.

Am Besten am Anfang von Button1Click eine Fehlerprüfung einbauen:
Delphi-Quellcode:
Edit1.Text := Trim(Edit1.Text);
If Edit1.Text = 'then begin
  ShowMessage('Bitte irgendwas in Edit1.Text eingeben.');
  Exit;
end;
If StrToIntDef(Edit1.Text,-99) = -99 then begin
  ShowMessage('Bitte eine Zahl in Edit1.Text eingeben.');
  Exit;
end;
Alternativ statt TEdit ein TMaskEdit benutzen, das kann so konfiguriert werden, dass nur Zahlen eingegeben werden können. Spart den Ärger mit nicht in Zahlen umzuwandelnde Zeichen, die Prüfung auf Leerstring sollte aber auch bei TMaskEdit erfolgen.

Warum Memo1.Text := Pchar(Memo1.Text + 'a'); Memo1.Text := Memo1.Text + 'a'; reicht vollkommen aus.
  Mit Zitat antworten Zitat