Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как использовать форму из DLL

- Чем пользователь похож на обезьяну?
- Поведением. Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем пользователь отличается от обезьяны?
- Интеллектом. У обезьяны хватает ума не воспроизводить ту последовательность нажатий и дерганий, которую которая приводит к краху системы.

Это файл Form.dpr, из которого получается DLL:


library Form;
uses
  Classes,
  Unit1 in 'Unit1.pas' {Form1};
exports
  CreateMyForm,
  DestroyMyForm;
end.

Это его Unit1:


unit Unit1;

interface

// раздел uses и определение класса Form1

  procedure CreateMyForm(AppHandle: THandle); stdcall;
  procedure DestroyMyForm; stdcall;

implementation
{$R *.DFM}

procedure CreateMyForm(AppHandle: THandle);
begin
  Application.Handle := AppHandle;
  Form1 := TForm1.Create(Application);
  Form1.Show
end;

procedure DestroyMyForm;
begin
  Form1.Free;
end;

end.

Это UnitCall вызывающего EXE-шника:


unit
  UnitCall;

interface

// раздел uses и определение класса Form1

  procedure CreateMyForm(AppHandle: THandle); stdcall; external 'Form.dll';
  procedure DestroyMyForm; stdcall; external 'Form.dll';

implementation
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateMyForm(Application.Handle);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DestroyMyForm;
end;

end.

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay