Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: eine zur Laufzeit erstellte Komponente unterordnen

  Alt 16. Jun 2004, 16:21
Moin Roderich,

Zitat von roderich:
Du greifst explizit auf die Instanz "Form1" zu, die
1. gar nicht erzeugt sein muß
2. bei mehreren Instanzen dieser Klasse stets in die Hose gehen würde

Self zu verwenden, ist immer sauberer.
das ist natürlich richtig, ich wollte nur verdeutlichen, was self zu bedeuten hat.

@isocam:
In vielen Fällen werden die Standards von Delphi verwendet.
Man hat also eine Klasse TForm1 und eine zugehörige Objektvariable Form1, die von der IDE automatisch erzeugt werden.
Ebenso automatisch wird die Zeile

Application.CreateForm(TForm1, Form1); erzeugt, mit der beim Programmstart eine Instanz von TForm1 in Form1 gebildet wird, da Du nun aber diesen Automatismus nicht zwingend nutzen musst, sondern die Instanzen auch "manuell" erzeugen kannst, kannst Du auch eine andere Variable als nun gerade Form1 benutzen (1. bei Roderich).
Ausserdem kannst Du auch, zusätzlich zur automatischen Erzeugung, noch weitere Instanzen von TForm1 bilden, die dann, sinnvoller Weise, nicht Form1 zugeordnet sind. Somit würde die Angabe von Form1 auf die falsch Instanz verweisen.

Nimmt man hingeben immer self, so ist sichergestellt, dass immer die korrekte, existierende, Instanz von TForm1 verwendet wird, unabhängig davon, wieviele Instanzen man erzeugt hat, und wie die jeweiligen Variablen heissen (soweit man überhaupt welche verwendet hat, was ja auch nicht zwingend erforderlich ist.

Spätestens, wenn Du anfängst selber Komponenten zu schreiben, in deren Methoden auf die Objektinstanz zugegriffen werden soll/muss, wirst Du feststellen, dass es auch gar nicht anders geht als self zu benutzen, denn Du kannst dann ja vorher nicht wissen, wie die Variable heissen wird, die die Instanz zugewiesen bekommt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat