Вниз
Скачать: 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.012 c
14-87661
Hoper
2003-02-04 01:21
2003.02.27
hlp


3-87281
Eugene_
2003-02-08 21:21
2003.02.27
Работа со связанными таблицами Paradox


6-87589
SeF
2003-01-08 23:51
2003.02.27
TServerSocket


3-87356
Aleksandr
2003-02-11 10:35
2003.02.27
Баг с фильтрацией в ClientDataSet?


1-87561
Кило
2003-02-17 10:43
2003.02.27
Как обратится к Edit у которого разные владельцы ?




   Наверх