Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
ВнизДобавление полей в 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 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c