HI Ouou,
Zitat von
Ouou:
StrToIntDef(StrToInt(Edit1.Text,0)+(Edit2.Text,0)) ;
was soll denn das werden? Problem A: Die Syntax stimmt nicht. Problem B: Die Struktur ist auch noch nicht vorhanden. So viel zum negativen. Jetzt zum positiven:
Wenn du zwei
Zahlen addieren willst, dann brauchst du eben nun mal Zahlen und keine Zeichenketten. So wie kommt man jetzt an die Zahlen ran?
Delphi-Quellcode:
procedure Add;
var
Zahl1, Zahl2: Integer;
Ergebnis: Integer;
begin
Zahl1 := StrToInt(Edit1.Text);
Zahl2 := StrToInt(Edit2.TExt);
Ergebnis := Zahl1 + Zahl2;
end;
Soviel dazu. Jetzt gibts mehrere Möglichkeiten, wie du dein Problem mit den Nicht-Integerwerten behebst.
A) (so wirds bei uns im Info-Unterricht Klasse 11 gemacht)
Delphi-Quellcode:
procedure Add;
var
Zahl1, Zahl2: Integer;
Ergebnis: Integer;
begin
try
Zahl1 := StrToInt(Edit1.Text);
except
Zahl1 := 0;
end;
try
Zahl2 := StrToInt(Edit2.TExt);
except
Zahl2 := 0;
end;
Ergebnis := Zahl1 + Zahl2;
end;
Das dürfte wohl das am einfachsten zu verstehen sein. Allerdings hoch rechenaufwendig und langsam. Schneller gehts so:
B)
Delphi-Quellcode:
procedure Add;
var
Zahl1, Zahl2: Integer;
Ergebnis: Integer;
begin
Zahl1 := StrToIntDef(Edit1.Text, 0);
Zahl2 := StrToIntDef(Edit2.TExt, 0);
Ergebnis := Zahl1 + Zahl2;
end;
Hier wird versucht die Zeichenkette in eine Zahl umzuwandeln. Bei einem Fehler wird der Wert 0 genommen. Es kommt nie zu einer
Exception, weshalb man die auch nicht abfangen muss.
Die Ausgabe wirst du wohl selbst realisieren können.
Bernhard
EDIT: Zu lahm...