Ich möchte ein Objekt erzeuge, dass z.B ein Panel über die komplette Form geht und darauf andere Objekte gelegt werden. Dazu habe ich diese
Unit gebastelt:
Delphi-Quellcode:
type
{* Eltern *}
TVaterPanel = class(TControl)
private
FGridActive : Boolean;
FGridSize : Integer;
protected
...
public
constructor Create(Owner: TComponent); override;
destructor Destroy; override;
property GridActive: Boolean read FGridActive write FGridActive;
property GridSize: Integer read FGridSize write FGridSize;
end;
{* Kind *}
TKindControl = class(TControl)
private
...
protected
...
procedure MouseDown (Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
...
public
...
end;
procedure Register;
implementation
constructor TVaterPanel.Create(Owner: TComponent);
begin
inherited Create(Owner);
FGridActive := False;
FGridSize := 5;
end;
destructor TVaterPanel.Destroy;
begin
inherited Destroy;
end;
procedure TKindControl.MouseDown (Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
begin
{* Wenn im TVaterPanel.FGridActive = True ist, mache *}
{* dies * }
{* sonst *}
{* das *}
{* end *}
end;
dann die
Unit einbinden und die Objekte zur Laufzeit erzeugen.
Delphi-Quellcode:
type
TForm1 = class(TForm)
...
public
vater: TVaterPanel;
kind1: TKindControl;
kind2: TKindControl;
...
vater := TVaterPanel.Create( Self );
vater.Left := 50;
vater.Width := 200;
vater.Height := 50;
vater.Name := 'vater1';
vater.Parent := Form1;
kind1 := TKindControl.Create( Self );
kind1.Left := 50;
kind1.Top := 102;
kind1.Width := 200;
kind1.Height := 50;
kind1.Name := 'kind1';
kind1.Parent := vater;
Mein Problem ist ja, wie kann ich innerhalb der
Unit an Parentobjekte ran?