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

Вниз

О формах в DLL   Найти похожие ветки 

 
Servis   (2002-05-11 22:14) [0]

Подскажите люди добрые, нам неразумным:"Как добавить форму в DLL-ку и потом из приложения ее открыть? Если такое в принципе возможно. Проблема в том что чем больше форм тем длинее EXE-шник, а не хотелось бы его делать очень большим. Если не затруднит киньте на мыло."


 
[NIKEL] ©   (2002-05-11 22:28) [1]


Это файл Form.dpr, из которого получается DLL:

library Form;
uses
Classes,
Unit1 in "Unit1.pas" {Form1};
exports
CreateMyForm,
DestroyMyForm;
end.


Это его Unit1:

unit Unit1;
interface
[раздел uses и определение класса Form1 поскипаны]
procedure CreateMyForm(AppHandle : THandle); stdcall;
procedure DestroyMyForm; stdcall;
implementation
{$R *.DFM}
procedure CreateMyForm(AppHandle : THandle);
begin
Application.Handle:=AppHandle;
Form1:=TForm1.Create(Application);
Form1.Show
end;
procedure DestroyMyForm;
begin
Form1.Free
end;
end.


Это UnitCall вызывающего EXE-шника:

unit UnitCall;
interface
[раздел uses и определение класса Form1 поскипаны]
procedure CreateMyForm(AppHandle : THandle); stdcall; external "Form.dll";
procedure DestroyMyForm; stdcall; external "Form.dll";
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateMyForm(Application.Handle)
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DestroyMyForm
end;
end.



 
Mystic ©   (2002-05-12 00:46) [2]

Да, если собираешься делать несколько DLL, то лучше включать флажок Build with runtime package в опциях проекта. Вообще эта опция весьма полезна, поскольку в запутанных проектах, например когда DLL пытается рисовать на форме из Exe-шника могут встреться довольно-таки неприятные ошибки вроде Can"t assign TFont to TFont (просто если rtl присутсвует отдельно в dll и приложении, то и объектов TFont два). Как минус - надо с собой тащить еще несколько dll.



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-73073
Александр Владимирович
2002-04-28 17:20
2002.05.23
Передача параметра из хранимой процедуры.


4-73468
daos
2002-03-19 15:16
2002.05.23
Как в WinXP заблокировать показ проги в Ctrl+Alt+Del?


6-73330
SerVS - S
2002-03-12 16:50
2002.05.23
Variant + TCP


3-73022
Леонид
2002-04-24 11:34
2002.05.23
Сумма нарастающим итогом в DBGrid


1-73178
DenNNis
2002-05-14 09:20
2002.05.23
Уважаемые Мастера!