![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Регистрация компонентов [D7, WinXP]
diablo_m © (2004-07-22 13:11:00)Я динамически подключаю форму к приложению. Как узнать какие на ней расположены компоненты и зарегестрировать их?
Юрий Зотов (2004-07-24 10:24:00) [1]В секции inititialization модуля формы добавьте вызывов:
RegisterClasses([список_классов]);
В списке классов перечислите классы всех имеющихся на форме компонентов (без повторов, каждый класс - один раз). Например:
RegisterClasses([TEdit, TButton, TComboBox]);
Можно сделать регистрацию и автоматической, причем для всех имеющихся в приложении (или пакете) классов. Как это сделать, рассказано в статье в разделе "Кладовка" на этом сайте.
diablo_m (2004-07-23 23:50:00) [2]1.Динамически подключаю так:
Template_frm := TTemplate_frm.CreateNew(Main_frm);
FileStream:=TFileStream.Create('sample.dfm',fmOpenRead);
MemoryStream:=TMemoryStream.Create();
ObjectTextToResource(FileStream,MemoryStream);
MemoryStream.Position:=0;
MemoryStream.ReadComponentRes(Template_frm);
MemoryStream.Destroy();
FileStream.Destroy();
Template_frm.Show;
Все работает нормально, но если добавляю компонент то пишет что такой класс не найден...
2.А регестрировать надо с помошью RegisterClass(). Я компилирую с включенный "built with run-time packages" vcl,vclx.
Юрий Зотов (2004-07-22 13:31:00) [3]Поясните, пожалуйста:
1. Что значит "динамически подключаю форму к приложению". С помощью эксперта в IDE на этапе design-time? Путем загрузки ее ресурсов извне на этапе run-time? Еще что-то?
2. Где и как надо "зарегестрировать расположенные на форме компоненты"? В палитре компонентов? В среде Delphi с помощью RegisterClasses? В уже запущенной программе с помощью RegisterClasses? Еще что-то?