Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Вниз

Формы в DLL. 


shelest   (2002-04-02 10:14) [0]

Один раз набрел на интересную статью в Интернете про то как работать с формами в DLL.
Но не могу вспомнить где.
Подскажите кто знает.
Буду очень признателен.



Dimedrol   (2002-04-02 10:36) [1]

Очень рекомендую обзавестись последними
"Советами от Валентина Озерова"
Там куча всего полезного, это ваещ - мой 2-й хэлп ! ;-)
Если надо, могу зааплоадить на фтп...
(а вообще, он должен быть в сети!)

Вот выдержка из него:
--------------------------------------------------------

Помещение формы в DLL
Вы можете помещать простые формы в 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.




shelest   (2002-04-02 11:36) [2]

Если он небольшой кинь на мыло!



Dimedrol   (2002-04-09 10:17) [3]

я те лучше на фтп выложу... твое ;-)




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.032 c
1-69921           OrlovSergei           2002-04-09 11:32  2002.04.22  
Как сохранить нарисованное?


3-69680           Incha                 2002-03-14 16:43  2002.04.22  
3-х звенное приложение клиент-сервер


1-69878           Yuri Btr              2002-04-09 10:25  2002.04.22  
Глюк в TMemo ???


3-69748           AndreyP               2002-04-02 14:38  2002.04.22  
Добавление вычисляемого поля


1-69927           Dimaiv                2002-04-09 19:58  2002.04.22  
Где ошибка вот в таком коде