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

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

Наверх




Память: 0.47 MB
Время: 0.053 c
4-1127380492
Xobbit
2005-09-22 13:14
2005.11.20
Импорт из DLL


2-1130837000
Dush
2005-11-01 12:23
2005.11.20
рисование на StringGrid


2-1130856983
Arazel
2005-11-01 17:56
2005.11.20
Быстрый пойск в масиве


1-1130335109
alex870
2005-10-26 17:58
2005.11.20
Поиск в TreeView


2-1131083532
Gia
2005-11-04 08:52
2005.11.20
DBEdit