Jetzt verstehe ich dein Problem
Nun deine Methode TForm1.Button1Click(Sender: TObject); ist ja Bestandteil eines Objectes -> TForm. Das was du anscheinend noch nicht weist ist das auch ein Object eigene Variablen deklarieren kann.
Statt also Summe, eg. Zahl, als Lokale Variable in der Methode .Button1Click() zu deklarieren, wird diese Variable als Feld des Objectes definiert. Das sieht dann so aus:
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
Edit2: TEdit;
...
procedure Button1Click(Sender: TObject);
...
private
FSumme: Integer;
protected
public
published
end;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
I := Random(5) +1;
if I = 1 then FSumme := 0
else Inc(FSumme, I);
Edit2.Text := IntToStr(FSumme);
end;
Wie du siehst wurde FSumme als neues privates Feld der Klasse TForm1 definiert. Jedes Object vom Typ TForm1 enthält nun eine eigene Variable mit dem Namen FSumme. Diese existiert exakt so lange wie auch das Object existert. Alle Felder von solchen Objecten werden per default mit 0, nil, '' usw. initialisiert.
Innerhalb jeder Methode zur Klasse TForm1 kann man direkt auf diese Object-Felder zugreifen.
Gruß Hagen