Форум: "Основная";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.056 c