Вниз
Скачать: 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.011 c
3-87249
NDmitry
2003-02-11 15:52
2003.02.27
MaxFileHandle


14-87673
ShowDeath555
2003-02-11 09:35
2003.02.27
Хочу узнать скока я скачал с ИНТЕРНЕТА


1-87493
Xi2
2003-02-15 23:29
2003.02.27
---|Ветка была без названия|---


3-87334
Yagoda
2003-02-10 21:16
2003.02.27
Transfer data from xls ...


1-87556
ltexcimer
2003-02-17 13:35
2003.02.27
Удалить строку StringGrid.




   Наверх