Die Frage ist, wieoft hast du das Form schon erzeugt?
Normalerweise ist die globale Variable leer. In eriner normalen App, die mit den Dingern arbeitet würde man das hier machen:
formVariable := TFormKlasse.Create(IrgendEinOwner);
Und auch wenn es nicht sehr schlau ist das zu machen, es funktioniert meistens. Aber nur solange du nur EINE Instanz hast.
Delphi-Quellcode:
formVariable := TFormKlasse.Create(IrgendEinOwner);
formVariable := TFormKlasse.Create(IrgendEinOwner);
Nun gibt es 2 Forms, aber die Referenz auf das zweite steht in dem Ding.
Wenn du jetzt (und das verstehe ich irgendwie gar nicht) innerhalb der Methoden dieser Klassen die globalen Varable anstatt self nimmst:
Delphi-Quellcode:
procedure TFormKlasse.OnShow(....);
begin
formVariable.DoSomething();
end;
Jetzt wird JEDE Instanz von TFormKlasse IMMER die Methode der Instanz ausführen, die gerade in formVariable steht.
Das hier hätte gereicht:
Delphi-Quellcode:
procedure TFormKlasse.OnShow(....);
begin
DoSomething();
// oder
self.DoSomething();
end;