Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков КРЭКЕРСТВО + ПРОГРАММИРОВАНИЕ 2017
(актуальность: апрель 2017)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Помещение формы в 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.
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS