Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.01.2011, 21:04
condor_net condor_net вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 4
Репутация: 10
По умолчанию Разъясните пожалуйста о bpl

Доброго времечка суток.
Решился вот разносить проекты по packag'ам - да вот незадача вышла - никак не приложу как объявленный в одном из модулей класс создать экземпляром в приложении, притом, что bplка грузится через LoadPackage
Вот простейший пример

модуль в проекте с bpl:

unit MyModule;
...
type TMyClass = class
public
constructor Create(SomeParam: string);
destructor Destroy; override;
end;
...
далее собственно описываются сами конструктор и деструктор
...
end;//MyModule

собраем bplку - к примеру, MyBPL.bpl

далее приложение уже другое

...
implementation

var PluginModule: HMODULE;

procedure TForm1.FormCreate(Sender: TObject);
var
MyForm: TClass;
begin
PluginModule := LoadPackage('MyBPL.bpl');
// вот тут мне нужна такая конструкция для приведения типа
MyForm := FindClass('TMyClass');
// а вот это не работает
(MyForm as TMyClass).Create('sometext');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnloadPackage(PluginModule);
end;

end; // ...

вот собственно и проблема. Хочу оперировать объектом MyForm как TMyClass - подскажите пожалуйста, как это сдлеать.
И второй вопрос - лучше сразу выгружать bpl после создания объекта или так и тащить ее до конца?
Ответить с цитированием
  #2  
Старый 12.01.2011, 12:56
condor_net condor_net вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 4
Репутация: 10
По умолчанию Re

Нашел вот такой способ:

1. Объявляю абстрактный класс TMyClassBasic(TPersistent) в некоем модуле Definitions
2. При сборке bpl - использую Definitions и наследую TMyClass от TMyClassBasic
3. В месте, где надо использовать bpl, использую Definitions и делаю приведение типа функции GetClass к TMyClassBasic
4. Полученный объект можно уже использовать как TMyClassBasic, главное в нем описывать всё что нужно
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter