Вниз
Скачать: 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.036 c
6-1122990135
Dyakon_Frost
2005-08-02 17:42
2005.11.20
Обработка интернет страницы!


11-1110221256
Shanker
2005-03-07 21:47
2005.11.20
Проблемы с установкой Socket


2-1130410496
kosha
2005-10-27 14:54
2005.11.20
Перегрузка виртуального метода


14-1130153327
DillerXX
2005-10-24 15:28
2005.11.20
Чудеса в Решетове


3-1128661433
syte_ser78
2005-10-07 09:03
2005.11.20
Перевод БД на другой язык




   Наверх