![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Единый TApplications для Dll и Exe без Bpl
Gu © (2011-08-09 06:43:00)В большинстве источников в инете пишут, что при инициализации Dll из приложения необходимо передать в эту dll TApplication и TScreen приложения (последний кстати некоторые советуют не использовать, т.к. это приводит к ошибкам типа cannot assign tfont to tfont в модуле graphics). Но все равно при этом одного tApplication не получится, т.к. приложение и dll используют разные экземпляры tapplication и это приводит к куче проблем и лечить это советуют только сборкой длл и ехе на одной версии дельфей с включением рантайм пакетов (bpl), но это очень неудобно, т.к. с приложением все эти пакеты надо таскать.
Вот тут есть интересный пример одного китайца(?), как получить типа общего control для приложения и длл через атомы (общий контрол.пас): http://hi.baidu.com/buckayro/blog/item/c93259f1357bfbc47931aab0.html
Может еще какие способы есть и кто что об этом думает, может в новых версиях дельфей что то новое появилось, чтобы это реализовать (%тема вопроса%)? Читал еще, что можно както типа мини api внедрять в приложение, но реализации не видел. Буду благодарен за любые идеи.
Anatoly Podgoretsky (2011-08-09 13:17:00) [21]> Ega23 (09.08.2011 09:03:04) [4]
Чешется
Игорь Шевченко (2011-08-09 12:36:00) [22]Читать Тейксейру с Пачеко, о том, как работать с формами в DLL без пакетов
Gu (2011-08-09 11:36:00) [23]>> у всех dll есть одна стандартная функция
ну да, эти параметры при инициализации передаются. только после приравнивания их локальным экземпляры все равно разные.
OW (2011-08-09 10:41:00) [24]делали так
у всех dll есть одна стандартная функция, которая спрашивает все что нужно
TApplication TScreen, еще что-то (TConnrection)
Загрузил и передал.
И все равно глюканет ^)
Ega23 (2011-08-09 09:03:00) [25]Я вот совершенно не понимал, откуда это маниакальное желание запихнуть всё на свете в dll?
Anatoly Podgoretsky (2011-08-09 08:53:00) [26]
> т.к. с приложением все эти пакеты надо таскать.
Как будто ДЛЛ не надо таскать.
Ega23 (2011-08-09 08:05:00) [27]Зачем dll нужно что-то знать о главной форме?
Gu (2011-08-09 07:21:00) [28]это я к тому, что как бы сделать, чтобы код в dll
..
var p:tpanel;
begin
Application.MainForm.Caption:='test';
p:=tpanel.create(Application.MainForm);
p.ParentFont:=false;
p.Parent := Application.MainForm;
p.Top:=0;
p.Left:=0;
p.Caption:=Application.MainForm.Caption;
p.Width:=200;
p.Height:=200;
p.Color:=clred;
p.Visible:=true;
выполнылся бы и без компиляции dll и exe вместе с bpl (он работает, но только если с рантайм пакетами собирать, а так нет, хотя название формы меняется на test)