Zitat von
TRBB:
Da der Code nun etwas lang wurde, hab ich mir Frames erstellt.
[...]
Diese kann ich zwar ansprechen (zumindest scheint es so weil sie keine Fehler produzieren) aber irgendwie reagieren sie auf keine Zuweisungen.
[...]
Wie kann ich die kopierten Objekte benutzen?!?
Hi,
die Frage die sich hier stellt ist, wo der Code (die Zuweisung) jetzt eigentlich eingefügt wurde. Rufst Du den in der
Unit des jeweiligen Frames auf? Und das Projekt lässt sich erfolgreich übersetzen?
An sich musst Du darauf achten, dass Bezeichner immer innerhalb eines gewissen Scope eindeutig sein müssen. Der Scope variiert dabei immer mit der Art von Bezeichner, eine Instanzvariable muss nur innerhalb der Klasse eindeutig benannt sein, eine globale Variable kann natürlich nur einmal pro
Unit existieren, etc. Bei Controls sorgt Delphi aut. dafür, dass wenn die kopiert werden der Bezeichner diesem Anspruch angepasst wird. Kopierst Du also ein Edit1, so solltest Du nach dem einfügen nochmal schauen, ob der Name auch bei der Kopie noch Edit1 ist oder geändert wurde. Dieser Bezeichner ist zudem nur innerhalb der
Unit des Frames eindeutig.
Jetzt kannst Du in einem Formular beliebig viele Frames platzieren, die entsprechend alle ein Edit1 hätten. Weißt Du jetzt innerhalb der
Unit des Formulars dem Edit1 eine Eigenschaft zu, dann würde Delphi denken, dass Du das Edit1 der
Unit des Formulars meinst. Um hier auf Elemente eines Frames zuzugreifen, musst Du den Namen des entsprechenden Frames (die konkrete Instanz) voranstellen, also z.B.
myFrame1.Edit1.Text := '...';
Gruß Der Unwissende