Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.016 c
2-1123824025
rts111
2005-08-12 09:20
2005.09.18
Как вызвать такой диалог?


4-1122307063
dima_shapkin
2005-07-25 19:57
2005.09.18
CM_CANCELMODE


3-1123151958
mvalera
2005-08-04 14:39
2005.09.18
Сортировка данных в завязаных базах.


9-1115658085
Санёк
2005-05-09 21:01
2005.09.18
Плоскость, векторы, преобразования.


14-1124716552
oldman
2005-08-22 17:15
2005.09.18
Может ли ВОТ ТАК выгореть проц?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский