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

Вниз

Модульность программы   Найти похожие ветки 

 
X-shadow ©   (2005-08-28 17:38) [0]

Хотел спросить как в длл затолкать целую форму а потом отобразить ее на форме которая вызвала длл. Еще хотел спросить как в этот длл затолкать картинку и потом ее достать оттуда.


 
TUser ©   (2005-08-28 18:01) [1]

> Хотел спросить как в длл затолкать целую форму а потом отобразить ее на форме которая вызвала длл.

Лучше использовать bpl.


 
X-shadow ©   (2005-08-28 18:35) [2]

а даже не знаю что это такое :). С длл я дело имел но экспортировал только функции.


 
Lower_   (2005-08-28 21:30) [3]

library Express;
uses
 SysUtils,
 Classes,
 forms,
 Express_u in "Express_u.pas" {exl_f};

{$R *.res}
procedure created;export;stdcall;
begin
try
exl_f:=Texl_f.Create(Application);
exl_f.ShowModal;
finally
exl_f.Free;
end;
end;
exports
created;
begin
end.

В главном модуле пишешь:
статично:
procedure created;stdcall; external "you.dll" name "created";
динамично -через адрессные пространства

Картинка подключается через ресурс (компилишь ресурс и вставляешь в свой модуль)

Затем из шлавного окна
LibHandle := LoadLibrary("you.dll");
if Handle <> 0 then
ResStream := TResourceStream.Create(LibHandle,
PChar("BITMAP1"), RT_BITMAP);
try
bit:=TBitmap.Create;
bit.LoadFromResourceName(LibHandle,PChar("BITMAP1"));
Image.Masked:=true;
Image.AddMasked(bit,clfuchsia);
bit.Free


 
Наиль ©   (2005-08-28 21:47) [4]

Считай, что bpl - это борландовский Dll.
Создаётся через dpk-файл.
Для загрузки используешь LoadPackage вместо LoadLibrary.
В остальном всё тоже самое.


 
Defunct ©   (2005-08-29 02:46) [5]

> С длл я дело имел но экспортировал только функции.

DLL может экспортировать только функции.
надо тебе экспортировать картинку - пиши функцию которая возвращает картинку. Надо экспортировать форму - пиши функцию которая открывает форму.

> Lower_  
LibHandle := LoadLibrary("you.dll");
if Handle <> 0 then
begin
  ...


 
GuAV ©   (2005-08-29 03:58) [6]


>DLL может экспортировать только функции.
> надо тебе экспортировать картинку - пиши функцию
> которая возвращает картинку.


Не обязательно.

library ExportVariables;

uses Windows, SysUtils;

var
 I: Integer;
 kartinka: HBITMAP;

procedure MyDllDroc(Reason: Integer);
begin
 case Reason of
   DLL_PROCESS_ATTACH:
     begin
       I := 555;
       kartinka := LoadBitmap(0, PChar(OBM_CLOSE));
     end;
   DLL_PROCESS_DETACH:
     begin
       DeleteObject(kartinka);
     end;
 end;
end;

exports
 I,
 kartinka;

begin
 DllProc := MyDllDroc;
 DllProc(DLL_PROCESS_ATTACH);
end.




var h: THandle; P: Pointer;
....

 h := LoadLibrary("ExportVariables.dll");
 Win32Check(h <> 0);

 P := GetProcAddress(h, "I");
 Win32Check(Assigned(P));
 Button1.Caption := IntToStr(PInteger(P)^);

 P := GetProcAddress(h, "kartinka");
 Win32Check(Assigned(P));
 Image1.Picture.Bitmap.Handle := THandle(P^);



 
X-shadow ©   (2005-08-29 09:03) [7]

Вот допустим у меня в длл есть форма. Я открываю все это через приложение. Как поместить экспортируемую форму на скажем панель приложения или на любой другой подобный контрол.



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

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

Наверх




Память: 0.48 MB
Время: 0.042 c
2-1123677426
DeepProg
2005-08-10 16:37
2005.09.18
ADO. Parameters.


1-1123776604
olevacho2
2005-08-11 20:10
2005.09.18
Отличие Delphi4 Standart от Delphi4 Professional


1-1124799544
Boogier
2005-08-23 16:19
2005.09.18
Не удается найти файл d7vcl.hlp


2-1123763262
Radgar
2005-08-11 16:27
2005.09.18
ComboBox


1-1125041794
ruslan_as
2005-08-26 11:36
2005.09.18
Afalina Soft XL Report 4 - "Ошибка сервера"