Вниз
Скачать: CL | DM;

Как динамически подключить библиотеку с компонентами?   Найти похожие ветки 

← →
RNF   (2003-04-14 02:49) [0]

Приложение представляет собой специализированный графический редактор, напоминающий среду IDE в Delphi. Нужно предусмотреть возможность инсталляции новых библиотек компонентов (*.bpl),
чтобы компоненты создавались динамически.
Подключаю новую библиотеку динамически, но не работает: при попытке создания компонента возникает исключение, что класс компонента не найден, хотя в библиотеке есть секция инициализации с вызовом процедуры регистрации класса компонента. Если изначально подключить модуль с компонентами в разделе uses, то все работает.
В чем моя ошибка?

// Модуль с новыми компонентами
unit Sample;
interface
uses
...
type
// Новый компонент 1
TSample1=class(TGraphicControl)
...
end;
// Новый компонент 2
TSample2=class(TGraphicControl)
...
end;
implementation
...
initialization
// Регистрирую класс новых компонентов
RegisterClasses([TSample1, TSample2]);
finalization
UnRegisterClasses([TSample1, TSample2]);
end.

// Приложение, использующее новые компоненты
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids{, Sample}; // Если раскоментарить, то работает
type
TForm1 = class(TForm)
...
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Control:TControl;
P ointer;
begin
// Подключаю библиотеку с новыми компонентами
P := Pointer(LoadPackage("C:\Program Files\Borland\Delphi6\Projects\Bpl\dclusr60.bpl"));

// Создаю компонент. Вот здесь ошибка и возникает - класса такого не знает
Control := TControl((FindClass("TSample1")).Create(nil));
Control.Parent := self;
end;
...


← →
malkolinge ©   (2003-04-14 12:30) [1]

Register Class надо юзать..FindClass только с зарегестрированными рабоотает...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
3-76777
Дельфин
2003-04-04 07:38
2003.04.24
индексация и фильтр- всеобщая глюка ,от корой у меня крыша едет.


11-76865
Kirill
2002-07-12 19:11
2003.04.24
ошибка с фонтом


14-77101
Дмитрий К.К.
2003-04-07 06:11
2003.04.24
Именинники 7 апреля


14-77151
Pitay
2003-04-06 21:28
2003.04.24
Эмитация нажатия кнопки


1-76940
Новик
2003-04-12 12:44
2003.04.24
Добавление информации в типизированый файл




   Наверх