Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Objekt als published property

  Alt 7. Sep 2006, 11:44
Hi,

ich glaub du willst in eine ganz andere Richtung. Kann es sein, dass du nur die Eigenschaften deines eingebundenen Objectes zum Ändern im Objektinspektor anzeigen willst?

Dann mußt du eine "Wrapper-Klasse" schreiben!

Ich hab dir einen ansatz mal zusammengeschrieben (getestet)

Delphi-Quellcode:
unit Test;

interface

uses
  SysUtils, Classes;

type
  TAnLeUser = class;

  TUserData = class(TPersistent)
    private
      FOwner : TAnLeUser;
    function GetID: Integer;
    procedure SetID(const Value: Integer);
    public
      constructor create(AOwner : TAnLeUser); reintroduce;
    published
      property ID : Integer read GetID write SetID;
    end;


  TAnLeUser = class(TComponent)
  private
    FUserData : TUserData;
    FID: Integer;
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    property ID : Integer read FID write FID;
  published
    { Published-Deklarationen }
    constructor Create(AOwner : TComponent);override;
    property Userdata : TUserdata read FUserdata write FUserData;
    property Name;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('oki', [TAnLeUser]);
end;

{ TAnLeUser }

constructor TAnLeUser.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FUserData := TUserData.Create(self);
end;

constructor TUserData.create(AOwner: TAnLeUser);
begin
  FOwner := AOwner;
end;

function TUserData.GetID: Integer;
begin
  IF not assigned(FOwner) then Exit;
  Result := FOwner.ID;
end;

procedure TUserData.SetID(const Value: Integer);
begin
  IF not assigned(FOwner) then Exit;
  FOwner.ID := Value;
end;

end.
gruß oki
  Mit Zitat antworten Zitat