|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Сохранение формы в DLL
У меня есть DLL с упакованной модальной формой
Код:
library dprFormDll2; uses SysUtils, Windows, Classes, unFormDll2 in 'unFormDll2.pas' {Form1}; {$R *.res} function ShowForm: Integer; stdcall; begin try Form1 := TForm1.Create(nil); Form1.ShowModal; if (Form1.ModalResult = idOk) then Result := Form1.ListBox1.ItemIndex else Result := -1; finally FreeAndNil(Form1); end; end; exports ShowForm; begin end. Потом из другого проекта я пытаюсь вызвать эту DLL: Код:
unit unRunDll2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Label1: TLabel; procedure FormDblClick(Sender: TObject); private { Private declarations } public { Public declarations } end; TShowForm2= function : Integer; stdcall; var Form2: TForm2; ShowForm2: TShowForm2; LibHandle: THandle; Res: Integer; implementation {$R *.dfm} procedure TForm2.FormDblClick(Sender: TObject); begin // @ShowForm2 := nil; libHandle := LoadLibrary('E:\Aleksandr_Delphi\Примеры программ\Размещение форм в DLL\dprFormDll2.dll'); @ShowForm2 := GetProcAddress(LibHandle, 'ShowForm'); Res := ShowForm2; case Res of 0: Label1.Caption := 'Первый вариант'; 1: Label1.Caption := 'Второй вариант'; 2: Label1.Caption := 'Третий вариант'; else Label1.Caption := 'Нет варианта'; end; end; end. |