Hallo nochmal,
ich glaube ich bin hier falsch verstanden worden. Ich will nicht wissen, warum das Tabsheet in dem Pagecontrol erscheint, sondern warum es in der Strukturübersicht erscheint. Das bekomme ich zwar selbst mit der schönsten "Parent-Zuweisung" nicht hin.
Hier nochmal ein Codeschnipsel, das den Kern verdeutlicht:
Delphi-Quellcode:
unit TestUnit;
interface
uses
Windows, Mssages, SysUtils, Classes;
type
TTestSubComponent =
class(TComponent)
private
FSomeProperty:
string;
procedure SetSomeProperty(
const Value:
string);
public
constructor Create(AOwner: TComponent);
override;
published
property SomeProperty:
string read FSomeProperty
write SetSomeProperty;
end;
TTestComponent =
class(TComponent)
private
FTestSubComponent : TTestSubComponent;
FAnotherProperty :
string;
procedure SetAnotherProperty(
const Value:
string);
public
constructor Create(AOwner: TComponent);
override;
destructor Destroy;
override;
published
property AnotherProperty:
string read FAnotherProperty
write SetAnotherProperty;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
Test', [TTestSubComponent, TTestComponent]);
end;
{ TTestSubComponent }
constructor TTestSubComponent.Create(AOwner: TComponent);
begin
// SetSubComponent(True);
inherited;
end;
procedure TTestSubComponent.SetSomeProperty(
const Value:
string);
begin
FSomeProperty := Value;
end;
{ TTestComponent }
constructor TTestComponent.Create(AOwner: TComponent);
begin
inherited;
FTestSubComponent := TTestSubComponent.Create(Self);
// InsertComponent(FTestSubComponent);
end;
destructor TTestComponent.Destroy;
begin
FreeAndNil(FTestSubComponent);
inherited;
end;
procedure TTestComponent.SetAnotherProperty(
const Value:
string);
begin
FAnotherProperty := Value;
end;
end.
Wenn ich nun ein Objekt des Typs TTestComponent in einer kleinen Testanwendung reinclicke, dann wir diese als kleines ja als kleines Icon in der Form angezeigt (ist ja eine nicht grafische Komponente). In der Strukturübersich erscheint die auch.
Soweit so gut!
Gleichzeitig wird im Konstruktor aber auch noch ein Objekt des Typs TTestSubComponent angelegt. Das möchte ich nun auch bitte schön in der Strukturübersicht angezeigt bekommen, aber wie?
Ich hab' mir da schon echt die Zähne dran ausgebissen, aber vielleicht fällt einem von euch ja hier etwas ein.
Gruß,
Christian
PS: anbei übrigens nochmal das der Screenshot von oben. Falls noch Zweifel bestehen, wo die TTestSubComponent auftauchen soll, es ist an der Stelle, die ich mit gelb im Screenshot markiert habe.