Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-87680
Ниул
2003-02-10 19:36
2003.02.27
Как получить результат выполнения функции?


14-87624
Дмитрий К.К.
2003-02-10 06:19
2003.02.27
Именинники 10 февраля


6-87599
_sMile
2003-01-10 13:22
2003.02.27
Как _быстро_ отправлять письма с аттачами по SMTP-протоколу?


3-87247
ROk
2003-02-11 10:53
2003.02.27
Индикация индексирования


1-87404
Stager
2003-02-18 10:32
2003.02.27
Посоветуйте правильный подход





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский