Текущий архив: 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.46 MB
Время: 0.009 c