Hallo und
Du musst die Prozedur als zu deinem Formular gehörig deklarieren oder mit
Form1.Edit1. Delphi sagen, dass du das Edit1 in Form1 meinst.
Zudem sind deine Prozeduren falsch deklariert. Die werden bei einem Doppelklick auf den Button doch automatisch erstellt. Wenn du sie selbst änderst, dann funktioniert das nicht mehr.
Delphi-Quelltext
1:
| procedure TForm1.Button1Click(zahl1,zahl2,ergebnis:integer;Sender: TObject); |
Richtig sieht das so aus:
Delphi-Quelltext
1:
| procedure TForm1.Button1Click(Sender: TObject); |
Das muss aber auch als Ereignis zugewiesen sein, sonst passiert gar nix.
In Einlesen ist es irgendwie unpassend auch das Ergebnis-Editfeld auszulesen, da soll ja das Programm das Ergebnis hineinschreiben und nicht der Benutzer.
Ich empfehle dir einmal einen Crashkurs:
crashkurs.christian-stelzmann.de
Sinnvoll wäre es auch, wenn du schaust, ob in den Edits überhaupt Zahlen stehen, aber das musst du natürlich nicht machen.
Wie wäre es so?

Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| type TForm1 = class(TForm) ... private function Einlesen... end;
...
function TForm1.Einlesen(var zahl1, zahl2: Integer): Boolean; Begin Result := TryStrToInt(Edit1.Text, zahl1) and TryStrToInt(Edit2.Text, zahl2); end;
procedure TForm1.Button1Click(Sender: TObject); var a, b: Integer; begin if Einlesen(a, b) then begin Ergebnis := a + b; Ausgeben(Ergebnis); end else ShowMessage('Bitte richtige Eingaben machen!'); end; |