Вниз
Скачать: 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.012 c
1-29327
Дракоша
2004-01-29 20:32
2004.02.10
Как присвоить обработчик динамически созданому компоненту


1-29346
Eli
2004-01-29 12:50
2004.02.10
ActiveControl.Handle


1-29322
SeriousSam
2004-01-29 20:24
2004.02.10
Очень глупый вопрос: как сделать в программе еще одно окно?


3-29269
SnapIn
2004-01-17 12:09
2004.02.10
Поместить результат селекта в переменную


9-29188
nobody
2003-07-30 18:48
2004.02.10
OpenGL1x + GLVerletClothify+GLVectorFileObjects




   Наверх