Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Единый TApplications для Dll и Exe без Bpl


Страницы:   1 2

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)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо