Announcement

Collapse
No announcement yet.

Property mit Unter-Properties im Objekt-Inspektor

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Property mit Unter-Properties im Objekt-Inspektor

    Ich möchte in einer Komponente im Objekt-Inspektor ein Property mit Unterproperties verschiedender Typen (ähnlich TFont) darstellen. Dazu folgender Code:

    type
    TMyProp = class(TPersistent)
    private
    FProp1 : Boolean;
    published
    property Prop1 : Boolean read FProp1 write FProp1;
    end;

    TMyEdit = class(TEdit)
    private
    FMyProp : TMyProp;
    published
    property MyProp : TMyProp read FMyProp write FMyProp;
    end;

    Das Property erscheint dann auch, beim anklicken des Plus-Zeichens erscheint aber die Meldung "Keine Expandierung möglich".

    Was fehlt noch ?

  • #2
    Du solltest eine Read/Write Methode für die Objectproperty definieren.
    Es MUSS sichergestellt sein das das Object existiert (<>nil).

    <pre>

    type
    TMEdit = class
    private
    FProp: TPersistent
    function getProp: Tpersistent;
    procedure SetProp(Value: TPersistent);
    published
    proeprty Prop: TPersistent read GetProp write SetProp;
    end;

    fucntion TMEdit.GetProp: TPersistent;
    begin
    if FProp = nil then FProp := TPersistent.Create;
    Result := FProp;
    end;

    procedure TMEdit.SetProp(Value: TPersistent)
    begin
    GetProp.Assign(Value);
    end;

    </pre>

    WICHTIG !, die write Methode darf nur die Eigenschaften von Value in das Zielobject übertragen/kopieren

    <pre>

    ..
    FProp := Value;
    end;

    </pre>

    ist FALSCH !

    Gruß Hage

    Comment

    Working...
    X