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

TFrame в Dll   Найти похожие ветки 

 
gVisio ©   (2005-10-26 12:14) [0]

как вызвать Frame из DLL и поместить его на форму???


 
BFG9k ©   (2005-10-26 12:33) [1]

Придется немного помучаться, коллега :)

Я использовал пакеты (Packages), они генерируют bpl. Экземпляр TFrame должен быть создан внутри пакета с помощью экспортируемой функции, которая и вернет его в основную программу. Объявлять экспортируемую функцию можно в любом модуле пакета. Далее действовать также, как и с dll (LoadPackage,GetProcAddress,UnloadPackage).

Грабли:

1. В основном проекте должен быть включен флаг Build With Runtime packages (Options-Packages)

2. Все вызываемые методы и объекты должны быть описаны как в основной программе, так и в пакете. Причем вызываемые методы фрейма должны быть virtual.

3. Уничтожать экземпляры фрейма лучше тоже внутри пакета.

4. Разные пакеты не должны содержать одноименных модулей (с этим я занимаюсь сексом конкретно сейчас).


 
clickmaker ©   (2005-10-26 12:37) [2]


> gVisio ©   (26.10.05 12:14)  
> как вызвать Frame из DLL и поместить его на форму???

собссно ниче сложного. Но есть несколько требований
1. И Exe и DLL должны быть собраны с одними и теми же runtime пакетами.
2. В DLL нужно передать Application из Exe и присвоить его апликэйшену длл
3. То же для Screen

А дальше пишешь экспортируемую ф-ию, где создаешь фрейм, возвращаешь указатель на него. А в экзе уже делай с ним, что хочешь. На форму положить - значит Frame.Parent := Form


 
BFG9k ©   (2005-10-26 12:43) [3]

clickmaker :

Ну наконец-то. Сейчас попробуем.



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

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



Память: 0.45 MB
Время: 0.025 c
2-1130622900
Grol
2005-10-30 01:55
2005.11.20
Вопрос про Stringgrid


3-1129092338
Anics
2005-10-12 08:45
2005.11.20
Кто-нибудь пробовал в TDBGrid устроить автонумерацию строк?


14-1130263029
Arazel
2005-10-25 21:57
2005.11.20
Где взять модуль HSLUtils?


2-1130427607
Unknown
2005-10-27 19:40
2005.11.20
Активность программы и SystemTray


1-1130325641
Juice
2005-10-26 15:20
2005.11.20
Assertions, директива $C




   Наверх