Hallo,
Die OnClick-Methode ist eine einfache Notifikations-Methode und hat dementsprechend einen Parameter („Sender“ vom Typ TObject).
Diesen Parameter mußt Du verwenden, um deine Information zu übergeben. dazu gibt es zwei Möglichkeiten, die mir spontan einfallen:
Sei X der Name deiner Integer-Variablen, errechnet in der Methode .Button1Click. Aus dieser methode heraus willst Du die Methode .Button2Click aufrufen, die dann den Wert von X benutzen soll.
- Typecasting:
in .Button1Click rufst du auf: Button2Click(TObject(X));
in Button2Click greifst du auf den übergebenen Integerwert zurück mit X := Integer(Sender);
- Übergabe als Teil eines Objekts:
Statt einer lokalen Variablen (X) in der Methode .Button1Click verwendest Du ein Feld eines Objekts. Wenn Du das Objekt dann übergibst, kann der Empfänger (.Button2Click) auf das Feld zugreifen. Dazu muss dort aber auch der Typ angegeben werden.
Tipp: Wenn es um einen Interegrwert geht, kann man die Eigenschaft „Tag“ von Komponenten gut dazu „missbrauchen“. Dann braucht man auch keinen speizelolen Typ zu deklarieren. Also: In .Button1Clck wird X ausgerechnet und der Eigenschaft Tag des Buttons zugewiesen:
Button1.Tag := x;
Dann wird der Button als Sender-Objekt übergeben:
Button2Click(Button1);
und der Empfänger liegt Tag wieder aus:
x := TComponent(Sender).Tag;
Das klappt natürlich nur, wenn das Tag-Feld nicht schon anderweitig benutzt wird.
LG
Jochen