Einzelnen Beitrag anzeigen

hronny

Registriert seit: 4. Mai 2006
Ort: Thüringen
97 Beiträge
 
Delphi 2007 Professional
 
#1

Parent Child Verbindungen, Objekte vom Parent im Child ?

  Alt 25. Nov 2008, 14:44
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?
grep -ri shit /usr/src/linux/*
  Mit Zitat antworten Zitat