Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.24;
Скачать: 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 вся ветка

Текущий архив: 2003.04.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-76948
Top Gun
2003-04-12 16:49
2003.04.24
Переименовка модуля


3-76781
Елена
2003-04-04 15:17
2003.04.24
Есть 2 таблицы.Как сделать так


3-76849
oss
2003-04-05 01:13
2003.04.24
OLAP кубы или что-то типа DecisionCube


1-77017
Zheka
2003-04-14 12:36
2003.04.24
Обнуление таблицы


1-76949
Icesmile
2003-04-12 15:42
2003.04.24
как разбить текстовый файл то запятой до запятой?