doctorek: Mógłbyś powiedzieć z czego dziedziczysz i jak dokładnie wywołujesz konstruktor?
Tak na marginesie to bym bardziej polecał coś w tym stylu:
interface
type TInnaKlasa = class
public
procedure Proc;
end;
type TKlasa = class(TCustomControl)
private
P: TInnaKlasa;
public
constructor Create(AOwner:TComponent; Komponent:TInnaKlasa); reintroduce;
procedure Wywolaj;
end;
implementation
constructor TKlasa.Create(AOwner:TComponent; Komponent:TInnaKlasa);
begin
inherited Create(AOwner);
P:=Komponent;
end;
procedure TKlasa.Wywolaj;
begin
P.Proc;
end;
// TInnaKlasa
procedure TInnaKlasa.Proc;
begin
showmessage('BLE!');
end;
// Przyklad użycia
procedure TForm1.Button1Click(Sender: TObject);
var k:TKlasa;
ik:TInnaKlasa;
begin
ik:=TInnaKlasa.Create;
k:=TKlasa.Create(self, ik);
k.Wywolaj;
k.Free; // Zwalniam najpierw obiekt k, aby mieć pewność, że nie będzie się on odwoływał do nieistniejącego ik (choć przy tym kodzie nie powinno się nigdy zdarzyć). Ewentualnie wrzuć to w destruktor i nie zwalniaj tutaj (wprowadza zamieszanie).
ik.Free;
end;
Ten kod pozwala na rozróżnienie Owner'a klasy od Twojego komponentu przekazywanego przez parametr (Oczywiście parametry zależą od tego z czego dziedziczysz).
ŁF napisał(a)
a tak swoją drogą to co to jest TObiect? Słyszałem tylko o TObject.
Tak właśnie mi coś nie pasowało, tylko nie widziałem co :)