Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 

Re: MDI-Child - Zugriffsverletzung bei Zuweisung

  Alt 10. Jul 2005, 20:07
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;
  Mit Zitat antworten Zitat