Announcement

Collapse
No announcement yet.

TFont in eigener Komponente

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

  • TFont in eigener Komponente

    Hallö, ich wollte eigentlich nichts anderes als einer selbstgeschriebenen Komponente ein Property zu verpassen, daß selbst einen TFont beinhaltet. Soweit klappt alles ganz gut, ich kann so ziemlich alles im Objektinspektor einstellen, aber wenn ich direkt den Property-Editor vom Font aufrufe, dort alles einstelle und dann kompiliere, schmiert er mir weg.

    <PRE>

    unit Title;

    interface

    uses
    Classes, Graphics;

    type

    TTitle=class(TPersistent)
    private
    FText:String;
    FFont:TFont;
    protected
    public
    constructor Create;
    destructor Destroy; override;
    published
    property Text:String read FText write FText;
    property Font:TFont read FFont write FFont;
    end;

    implementation

    constructor TTitle.Create;
    begin
    FFont:=TFont.Create;
    end;

    destructor TTitle.Destroy;
    begin
    FFont.Free;
    end;

    end.

    <PRE>

    Diese Unit wird in meiner Komponente aufgerufen, in deren Constructor created und im Destructor wieder freigegeben.

    Weiß jemand Rat?

    Fingolfin

  • #2
    Ich hab's gelöst, für alle die es interessiert:

    <PRE>
    Title=class(TPersistent)
    private
    FText:String;
    FFont:TFont;
    procedure SetFont(const value:TFont);
    protected
    public
    constructor Create;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    published
    property Text:String read FText write FText;
    property Font:TFont read FFont write SetFont;
    end;

    procedure TTitle.Assign(Source: TPersistent);
    begin
    if Source is TTitle then
    begin
    FFont.Assign(TTitle(Source).Font);
    end
    else
    inherited Assign(Source);
    end;

    procedure TTitle.SetFont(const value:TFont);
    begin
    FFont.Assign(Value);
    end;
    </PRE>

    Bis denn,

    Fingolfi

    Comment

    Working...
    X