Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > property не видна в Object Inspector


Автор: Bose 8.11.2005, 16:10
есть класс-родитель формы.
Код

  TcsForm = class(TForm)
    procedure RefreshData; virtual;
  private
    FScrollForm: boolean;
    procedure SetScrollForm(const Value: boolean);
  public
    constructor Create(AOwner: TComponent); override;
  published
      property ScrollForm:boolean read FScrollForm write SetScrollForm stored True;
  end;


почему в формах, которые я делаю на основе этой(
Код
 TForm1 = class(TcsForm)
), не видно моей
Код
property ScrollForm
? Что здесь не так?

p.s> с фреймами такая же проблема... smile

Автор: Rennigth 8.11.2005, 17:30
Неуверен, но вроде их надо в наследниках переобъявлять, типа:
Код

TForm1 = class(TcsForm)
published
  property ScrollForm;
end;

Автор: Bose 8.11.2005, 17:42
у меня в общем-то есть подозрение, что такое вообще невозможно... точнее возможно, но только для компонентов, которые потом на палитру вешаются..... но хочется услышать мнение профессионалов smile

Автор: Rrader 10.11.2005, 08:17
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TcsForm = class(TForm)
    procedure RefreshData; virtual;
  private
    FScrollForm: boolean;
    procedure SetScrollForm(const Value: boolean);
  public
    constructor Create(AOwner: TComponent); override;
  published
      property ScrollForm:boolean read FScrollForm write SetScrollForm stored True;
  end;
  
  TForm1 = class(TcsForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TcsForm }

constructor TcsForm.Create(AOwner: TComponent);
begin
  inherited;
  //
end;

procedure TcsForm.RefreshData;
begin
  //
end;

procedure TcsForm.SetScrollForm(const Value: boolean);
begin
 ShowMessage('Value: ' +
   BoolToStr(Value, True));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.ScrollForm := False;
end;

end.

Автор: Alexeis 10.11.2005, 10:40
Скорее всего в Object Inspecor виден не объект класса TcsForm (поскольку такой компонент не зарегистрирован)
а его полиморф
Код

   form1 as TForm

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)