Конференция "Компоненты" » добавить свойство TFont в свой компонент [D5, WinXP]
 
  • Gwa © (26.04.07 14:04) [0]
    Пытаюсь создать свой компонент
    Наследник TCustomControl.
    Добавляю свойство FMinFont
     TMyComp = class(TCustomControl)
     private
    ...
       FMinFont: TFont;
    ...
     published
    ...
    property MinFont: TFont read FMinFont write FMinFont;
    ...
     end;
    Компиляция и установка в палитру проходит нормально.
    В Disign-time вижу свойство, но раскрыть его (нажатием на крестик) не получается.
    Что я делаю не так?
  • DimaBr © (26.04.07 14:11) [1]
    Его нужно ещё и создавать


    constructor TMyComp.Create(AOwner: TComponent);
    begin
     inherited Create(AOwner);
     fMinFont := TFont.Create;
    end;

    destructor TMyComp.Destroy;
    begin
     fMinFont.Free;
     inherited Destroy;
    end;

  • _Аноним © (26.04.07 14:42) [2]

    > property MinFont: TFont read FMinFont write FMinFont;


    так не делай. Делай метод SetMinFont, где проводи Assign

    а позволять снаружи подменять ссылку себе - плохо.
  • DimaBr © (26.04.07 15:01) [3]
    Умняка надавил а как правилно сделать не показал


    TMyComp = class(TCustomControl)
     private
       fMinFont: TFont;
       procedure SetFont(const Value: TFont);
     public
       constructor Create(AOwner: TComponent);override;
       destructor Destroy; override;
     published
       property MinFont: TFont read fMinFont write SetFont;
    end;

    implementation

    constructor TMyComp.Create(AOwner: TComponent);
    begin
    inherited Create(AOwner);
    fMinFont := TFont.Create;
    end;

    destructor TMyComp.Destroy;
    begin
    fMinFont.Free;
    inherited Destroy;
    end;

    procedure TMyComp.SetFont(const Value: TFont);
    begin
     fMinFont.Assign(Value);
    end;

  • _Аноним © (26.04.07 22:05) [4]

    > Умняка надавил


    Где??

    что ж такое то...
  • DimaBr © (27.04.07 08:35) [5]

    > Где??

    [2]
  • имя (09.05.07 13:41) [6]
    Удалено модератором
 
Конференция "Компоненты" » добавить свойство TFont в свой компонент [D5, WinXP]
Есть новые Нет новых   [119247   +10][b:0][p:0.001]