• vasa (19.02.12 23:08) [0]
    Как при создании компонента указать Property таким образом, чтобы оно при компиляции не попало в код программы. Мм.. что хочу: у компонента сделать что-то типа подсказки, чтобы была видна, когда на форму кладешь, просто текст. Или типа как у Lmd\Jedy - жмакаешь на свойство - а там окошко About вылазит.
    Как это сделать? Если например присвоить
       Property MyHint:string='подсказка';
    то ругается, а если присваивать текст при создании, то он тоже в компиляции проги будет участвовать я так понимаю...
  • vasa (19.02.12 23:21) [1]
    и так тоже ошибка

    unit CoTy;
    interface
    uses System.SysUtils, System.Classes;
    type
     TCoTy = class(TComponent)
     private
       { Private declarations }
       Const MyHint_='Hint';
     protected
       { Protected declarations }
     public
       { Public declarations }
     published
       { Published declarations }
       Property MyHint:string Read MyHint_; //**
     end;
    procedure Register;
    implementation
    procedure Register;
    begin
     RegisterComponents(V-System', [TCoTy]);
    end;
    end.

    ** вот как тут вставить свойство, чтобы его можно было видеть только когда компонент на форме лежит, а в прогу этот текст не компилился бы (или тут кнопку внедрить, чтобы при нажатии на компонент или его свойство messagebox вылзил с подсказкой)
  • Юрий Зотов © (20.02.12 01:27) [2]
    Уберите это свойство совсем и напишите редактор компонента. Получите как раз то, что хотите:

    > в прогу этот текст не скомпилится
    > при нажатии на компонент вылезет messagebox с подсказкой
  • vasa (21.02.12 20:52) [3]
    получилось залезть в конт.меню компонента и в 2а клика на компоненте, спасибо.
    ради интереса - а как сделать в свойствах свойство About с кнопкой, где при клике на свойстве окно вылазит?
    >>
    Lmd\Jedy - жмакаешь на свойство - а там окошко About вылазит
  • DimaBr © (21.02.12 23:37) [4]
    property About:string Read fAbout write SetAbout;

    procedure SetAbout;
    begin
    end;

    TAboutPropertyEditor = class(TStringProperty)
     procedure Edit;override;
    end;

    procedure Edit;
    begin
     MyAboutForm.ShowModal
    end;

    RegisterPropertyEditor(TypeInfo(string), TCoTy, 'About',TAboutPropertyEdito);

Есть новые Нет новых   [119322   +7][b:0][p:0.001]