Вниз
Скачать: CL | DM;

Добавление полей в Design-Time   Найти похожие ветки 

← →
Raduga   (2003-02-16 12:28) [0]

Здравствуйте.
Мне нужно в режиме Design-time добавить поля (объекты заданного типа) в форму. Эти поля я создаю сам для своего компонента через редактор компонента. Как вставить эти поля в описание класса формы, чтобы они стали полями формы? Что-то наподобие вставки полей у компонента TTable, которые добавляются в текст кода.
Заранее спасибо.


← →
Юрий Зотов ©   (2003-02-16 12:59) [1]

1. Если это нестандартные поля, их надо зарегистрировать - см. RegisterClasses, RegisterNoIcon и RegisterFields.

2. В стандартном редакторе полей DataSet"а - пункт "Add field" или "Add all fields". После добавления полей в DataSet они "появятся" на форме (то есть, появятся в DFM и в коде).


← →
Raduga   (2003-02-17 11:19) [2]

Компонент не предназначен для работы с БД, это приводилось как пример. Как "прописать" поля компонента в форме? Ну например:

Есть компонент

TMyComponent=class(TComponent)
....
public
FObject:TObject;
......
end;

Возможно ли, что при добавление компонента в форму FObject был добавлен в форму и стал полем формы?



← →
Юрий Зотов ©   (2003-02-17 22:44) [3]

Если это TComponent, а не просто TObject, то легко. В Register зарегистрируйте его через RegisterNoIcon, в редакторе создавайте вызовом Create(Designer.Form), а в TMyComponent.FObject прописывайте ссылку на него. Соответственно, он и будет вставляться в форму (и в форме автоматически появится соответствующее published-поле), а TMyComponent будет только ссылаться на него (и поэтому удалять его не должен). В TMyComponent не забудьте перекрыть Notification, чтобы чистить ссылку.

Если же это TPersistent, но не TComponent, то нужна поддержка со стороны самой формы. Как минимум, она должна иметь прописанное вручную public-поле, ссылающееся на этот объект (а ее деструктор должен включать код удаления этого объекта). И в этом случае TMyComponent ничего сам удалять его не должен.

И, наконец, если это не TPersistent, то все еще сложнее. Такой объект не будет сохраняться в DFM сам по себе и поэтому нагрузка на форму увеличивается. Она должна переопределить метод DefineProperties и к нему иметь методы Read/Write.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
1-87448
Yrtimd
2003-02-18 18:06
2003.02.27
Проблемы с EhLib


1-87427
McAndy
2003-02-18 15:03
2003.02.27
Можно ли записать в файл экземпляр объекта


14-87685
Alex Shulg
2003-02-11 15:04
2003.02.27
Создание Help а


1-87494
_MAD_
2003-02-15 23:17
2003.02.27
clipboard


14-87696
swordent
2003-02-11 15:14
2003.02.27
Такой вот компонентик




   Наверх