Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Создание плагинов   Найти похожие ветки 

 
Medved ©   (2005-08-30 14:47) [0]

Суть проблемы: есть программа с формами. Нужно, чтобы была возможность загружать некоторые формы из DLL. Код, приведенный ниже, работает неправильно (выход из программы - после двух нажатий на кнопку закрытия одного окна или одного нажатия на каждом из окон по очереди). Может, у мастеров есть какие-то идеи?

LoadPlugin.dpr


program LoadPlugin;

uses
 Forms,
 Unit1 in "Unit1.pas" {Form1};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


Plugin.dpr


library plugin;

 uses
   ShareMem,
   SysUtils,
   Classes,
   Forms,
   Unit2 in "Unit2.pas" {Form2};

{$R *.res}

 procedure Init;
 begin
   Application.Initialize;
   Application.CreateForm(TForm2, Form2);
   Application.Run;
 end;

 exports
   Init name "Init";

begin
end.


Unit1.pas


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure Init; external "plugin.dll" name "Init";

procedure TForm1.Button1Click(Sender: TObject);
begin
 // load form form DLL
 Init;
end;

end.


Unit2.pas


unit Unit2;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm2 = class(TForm)
   Memo1: TMemo;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

end.


 
xShadow ©   (2005-08-30 15:15) [1]

http://narod.yandex.ru/cgi-bin/yandsearch?user=delphiworld&text=%F4%EE%F0%EC%E0+%E2+dll&where=2

Почитай для начала.


 
Digitman ©   (2005-08-30 15:25) [2]

program LoadPlugin;

uses
ShareMem,
Forms,
Unit1 in "Unit1.pas" {Form1};


 
Medved ©   (2005-08-30 15:39) [3]

Спасибо! Попробую разобраться.


 
Суслик ©   (2005-08-30 15:55) [4]

Копай лучше в сторону runtime пакетов.
С ними куда меньше проблем, чем с dll.

Почитай об этом материалы на сайте www.delphikingdom.ru



Страницы: 1 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
14-1125831667
ArtemESC
2005-09-04 15:01
2005.09.25
Внутренний динамик


2-1124042183
Kerk
2005-08-14 21:56
2005.09.25
Сортировка и поиск: Рецептурный справочник


14-1125921191
ПЛОВ
2005-09-05 15:53
2005.09.25
Посоветуйте PHP редактор


2-1123983869
Chipik
2005-08-14 05:44
2005.09.25
удаление повторяющихся строк


14-1125306278
han_malign
2005-08-29 13:04
2005.09.25
VMT в MSVC++