Главная страница
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.041 c
5-1098760190
Kair()
2004-10-26 07:09
2005.09.18


1-1124787869
B-boy-Dimo-N
2005-08-23 13:04
2005.09.18
конфликт между JCL+JVCL 2.10 и QReport 4


4-1122316917
Aldaris
2005-07-25 22:41
2005.09.18
Общий доступ к папке


1-1124867893
lehich
2005-08-24 11:18
2005.09.18
ProgressBar, который отрисовывает линейку програсса в Статусбаре


14-1124880528
Korvet
2005-08-24 14:48
2005.09.18
Где скачать "Ras"