Вниз
Скачать: CL | DM;

Работа с формой из dll   Найти похожие ветки 

← →
Леприкон ©   (2004-01-29 12:43) [0]

Как создать форму, находящуюся в dll, так что бы её владельцем было приложение, обращающееся к этой dll?

Сейчас делаю так:

код из dll

..................
var
vFCoder:TFCoder;

function CreateCoder:boolean; stdcall;
begin
try
vFCoder:=TFCoder.Create(Application);
Result:=true;
except
Result:=false;
end;
end;

procedure DestroyCoder; stdcall;
begin
vFCoder.Free;
end;

procedure ShowCoder; stdcall;
begin
vFCoder.Show;
end;

exports
CreateCoder,
DestroyCoder,
ShowCoder;

.................

Возможно ли сделать что то вроде этого-

function CreateCoder(AOwner:TComponent):TForm; stdcall;
begin
Result:=TFCoder.Create(AOwner);
end;


← →
Digitman ©   (2004-01-29 13:12) [1]

конечно, возможно

но как минимум при условии, что и там и там используется соглашение о сборке Build With Run-Time packages или (если иначе) версии Делфи, в которых разрабатывались хост-приложение и библ-ка, едины

а stdcall в данном случае совершенно ни к чему - лишние "тормоза", хоть и не ощутимы на первый взгляд


← →
Игорь Шевченко ©   (2004-01-29 13:25) [2]

Или передавать Application.Handle из приложения в DLL.
Или передавать Application и Screen из приложения в DLL.

Читать Тейксейру и Пачеко, Delphi 5 руководство разработчика.


← →
Digitman ©   (2004-01-29 13:27) [3]

можно вообще ничего не передавать
если волнует автоматическое корректное уничтожение формы при завершении приложения, то просто поместить ее диструктор в раздел финализации библ-ки



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
3-29223
DimaF
2004-01-20 05:27
2004.02.10
Помогите с IBTable данных IBX


14-29555
barby
2004-01-21 09:16
2004.02.10
Словарь сокращений


3-29252
BlackCat
2004-01-16 06:42
2004.02.10
Каким компонентом лучше коннектиться к MySQL


4-29667
Bopros
2003-12-04 19:50
2004.02.10
Помогите с GetNamedSecurityInfo


14-29557
гогенус
2004-01-21 00:02
2004.02.10
WinXP администрирование




   Наверх