Zitat von
DGS:
Und glaub, ich weis jetzt, was du meintest. In der Unit1. wird ja eine globale Variable Form1 deklariert.
*auf Kopf klatsch*
Dann reicht ja Unit1 in implementation aus und greif auf diese Variable zu.
Darf ich nochmal nachschlagen, damit's wenigstens bischen weh tut
Hast du nicht in deinem ersten Beitrag was von OO Programmierung geschrieben
Dann solltest du aber wissen, dass man nicht unbedingt auf Instanzen direkt zugreifen soll. Was, wenn du plötzlich 2 Forms vom Typ TForm1 offen hast. Zugegeben, das ist in dem Beispiel eher unwahrscheinlich. Aber TForm1 könnte ja auch eine andere Klasse sein, von der du unterschiedliche Instanzen erzeugst.
In Unit2 (bzw. in TForm2 oder was auch immer) willst du auf Eigenschaften und Methoden von TForm1 zugreifen. Also übergib gefälligst eine Instanz von TForm1 im Konstruktor von TForm2.
Ich hoff, du verstehst was ich schreibe.
Und um deinem zirkulärem Problem aus dem Weg zu gehen, deklariere den constructor von TForm2 so:
Delphi-Quellcode:
unit SubUnit;
interface
uses
forms;
type
tHelp =
class
private
fvater : tForm;
public
constructor Create(vater : TForm)
end;
implementation
uses unit1 ;
constructor tHelp.Create(vater : TForm);
begin
assert ( vater
is TForm, '
Parameter Vater con tHel.Create muss vom Type TForm1 sein.') ;
inherited Create;
fVater := vater;
// irgendwas mit fVater machen
with fVater
as TForm1
do begin
// ...
end ;
end;
end.