Создание / повторное использование пользовательского компонента в Delphi с фиксированными свойствами макета (дизайн) - PullRequest
1 голос
/ 16 сентября 2011

Можно ли создать пользовательский компонент, не только добавив дополнительные функциональные возможности, такие как методы и события, но и разработав пользовательский компонент (чтобы цвет, шрифт, ... не устанавливались при добавлении этого компонента).

Я хотел бы использовать это для создания собственной TDBGrid, которую я повторно использую и могу просто добавить к форме, правильно разработанной.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Все, что вы можете сделать в конструкторе, вы можете «кодировать в свой компонент».Обычно вы просто заново объявляете новые значения по умолчанию для свойств и устанавливаете / инициализируете их в переопределенном конструкторе.Т.е. для создания пользовательской панели с красным цветом по умолчанию вы должны сделать

type
  TMyPanel = class(TPanel)
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Color default clRed;
  end;

constructor TMyPanel.Create(AOwner: TComponent);
begin
  inherited;
  Color := clRed; 
end;
0 голосов
/ 16 сентября 2011

Шаблоны компонентов должны служить задаче. После того, как вы создали и установили компонент, поместите его в форму, настройте все необходимые свойства, перейдите в Компонент-Создайте шаблон компонента, выберите имя и страницу палитры. Начиная с этого момента, вы можете выбрать и оставить свой вариант в форме

Поскольку скопированный компонент представляет собой простой текст внутри буфера обмена, вы также можете скопировать и вставить свой настраиваемый компонент в текстовый файл, а когда вам понадобится эта копия, просто выберите этот фрагмент и скопируйте его как простой текст, форма Delphi примет этот объект, когда вы вставляете его. Вы даже можете организовать небольшое хранилище для сохраненного компонента после «конца». в модуле или внутри комментариев оба компилятора будут безопасно обойдены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...