Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

DLL Как плугин? Есть проблемы!   Найти похожие ветки 

 
From_X   (2003-05-15 16:22) [0]

Если вызвать из проекта динамически процедуру из dll и
в этой процедуре создать модальную форму, то действительно так и будет НО, в task bar-е винды,будет второй трей и если нажать на кнопку вызывающего проекта, то модальная форма уйдёт вниз а проект будет также недоступен- Это ни Есть ГУД. Как обойти? и сделать так чтобы вазываемая форма из dll была такой же как если бы её вызвать нормально.


 
clickmaker ©   (2003-05-15 16:26) [1]

В DLL передать Application и Screen и заменить ими соотв. переменные DLL


 
CHDV   (2003-05-15 16:29) [2]

передавай в процедуру Application.Handle
и юзай его при создании окна


 
Вячеслав ©   (2003-05-15 16:31) [3]

А потому, что в ДЛЛ свой объект Аппликейшн и Скрин. Их ссылки надо запомнить при инициализации ДЛЛ, а соответствующим переменным в ДЛЛ присвоить значения из основной программы. По окончании все вернуть на место. Вообще-то на эту тему периодически все "трепятся", так что поищи примеры в сети понастырнее. :)


 
From_X   (2003-05-15 16:32) [4]

с Application я ещё понимаю

===========
Из проекта
PluginExec(application);
В Dll
function PluginExec(Sender:TComponent):boolean;
begin
o:=TForm2.Create(Sender);
===========

но что делать то с Application.Handle?



 
clickmaker ©   (2003-05-15 16:36) [5]

но что делать то с Application.Handle?

Ничего не надо с ним делать. Достаточно подменить сам Application


 
Skier ©   (2003-05-15 16:36) [6]

===========
Из проекта
PluginExec(Application.Handle);
В Dll
function PluginExec(AHandle : THandle) : boolean;
begin
Aplication.Handle := AHandle;
o:=TForm2.Create(Aplication);
===========



 
From_X   (2003-05-15 16:39) [7]

К слову, в dll и в основном проекте я использую одни и те же библиотеки но
в DLL
Grid1.DataSource=TDataSource(SenderForm.findComponent("DataSource1"))
в runtime говорит что типы не подходят.Как обойти?


 
From_X   (2003-05-15 16:46) [8]

Ребята с модальной формой, всё получилось, всем спасибо,
я с Dll особенно не работаю, поэтому многие тонкости просто не замечаю.
-----
Про Второй вопрос я тоже конечно слышал, что хотя и типы одинаковые но скомпилённые отдельно Dll воспринимает как другие.
НО я же компилю с типами взятыми с одного источники


 
Skier ©   (2003-05-15 16:47) [9]


> Как обойти?

Пиши пакеты.


 
From_X   (2003-05-15 16:50) [10]

DB :-)



Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.017 c
1-83603
a413
2003-05-13 15:15
2003.05.26
Пропал IDLE


3-83357
Avreliy
2003-05-05 15:21
2003.05.26
Отображение значений поля выборки на управляющей сетке!


11-83427
Ajax
2002-08-23 20:32
2003.05.26
ini.ClearKey


1-83438
Андрей
2003-05-13 08:08
2003.05.26
Как ограничить кол-во одновременно запущенных потоков


14-83734
Думкин
2003-05-05 09:42
2003.05.26
Фашизм и иже сним.