Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 618

•  TDictionary Custom Sort  6 621

•  Fast Watermark Sources  6 400

•  3D Designer  9 344

•  Sik Screen Capture  6 732

•  Patch Maker  7 117

•  Айболит (remote control)  7 121

•  ListBox Drag & Drop  5 982

•  Доска для игры Реверси  97 556

•  Графические эффекты  7 318

•  Рисование по маске  6 606

•  Перетаскивание изображений  5 479

•  Canvas Drawing  5 853

•  Рисование Луны  5 571

•  Поворот изображения  5 085

•  Рисование стержней  3 654

•  Paint on Shape  2 887

•  Генератор кроссвордов  3 786

•  Головоломка Paletto  3 038

•  Теорема Монжа об окружностях  3 851

•  Пазл Numbrix  2 534

•  Заборы и коммивояжеры  3 246

•  Игра HIP  2 211

•  Игра Go (Го)  2 144

•  Симулятор лифта  2 524

•  Программа укладки плитки  2 165

•  Генератор лабиринта  2 660

•  Проверка числового ввода  2 317

•  HEX View  2 649

•  Физический маятник  2 280

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Помещение формы в DLL



Автор: Neil J. Rubenking

Вы можете помещать простые формы в DLL на этапе разработки. Это можно сделать с формами, полностью готовыми к работе и не требующими доработки. Вот пример DLL, которая создает, отображает и освобождает форму. В примере была взята экстра-простая форма для того, чтобы показать, что она может быть использована любым языком, не только в Delphi. Как я и обещал, я преподнес вам идею. Гвоздь программы в том, что пока вы проектируете свое приложение, форма из вашей DLL в Delphi *не* загружается. Только не забудьте в конце разработки ее скомпилить :-)) .

Имейте в виду, что все функции в DLL-примере 32-битные. Т.е. после получения с помощью CreateTheForm указателя на форму, необходимые функции получат в свои руки полное 32-битное управление формой. Вероятно вам это и не понадобится, но это пример того, КАК нужно делать...


library Formdll;

uses

  SysUtils,
  Forms,
  Formdllu in 'FORMDLLU.PAS' {Form1};

function CreateTheForm: Pointer; export;
begin

  Result := TForm1.Create(nil);
end;

procedure LoadTheForm(P: Pointer; S1, S2, S3: PChar); export;
begin

  with TForm1(P) do
  begin
    Edit1.Text := StrPas(S1);
    Edit2.Text := StrPas(S2);
    Edit3.Text := StrPas(S3);
  end;
end;

function ShowTheForm(P: Pointer): Boolean; export;
const
  mrOK = 1;
begin

  Result := TForm1(P).ShowModal = mrOK;
end;

procedure ReadTheForm(P: Pointer; S1, S2, S3: PChar); export;
begin

  with TForm1(P) do
  begin
    StrPCopy(S1, Edit1.Text);
    StrPCopy(S2, Edit2.Text);
    StrPCopy(S3, Edit3.Text);
  end;
end;

procedure DestroyTheForm(P: Pointer); export;
begin

  TForm1(P).Free;
end;

exports

  CreateTheForm INDEX 1,
  LoadTheForm INDEX 2,
  ReadTheForm INDEX 3,
  ShowTheForm INDEX 4,
  DestroyTheForm INDEX 5;

begin
end.





Похожие по теме исходники

DLL Form

DLL in Resources

DLL Injector




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте