понедельник, 21 ноября 2005
Рисуется на форме мой компонент TEditGlushkov (он в QEditGlushkov) (в виде TEdit) но перегруженные в нем виртуальные функции не пашут. Че делать.
Задание звучит так:
Созданный новый компонент должен быть доступен для других приложений и/или форм, следовательно сохранить его в виде библиотеки DLL.
Возможное решение: Вызывать из Dll форму с компонентом. Тогда все работает.
Есть еще предложения что можно сделать.
P.S. Код ниже
читать дальше
//===========================В DLL==================================
library Project2;
{}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,QEditGlushkov;
type PForm = ^TForm;
var cmp:TEditGlushkov;
procedure mess();
begin
MessageBox(0,'dll','dll',MB_OK);
end;
procedure CreateMyEdit(sl:PForm);
begin
cmp:=TEditGlushkov.Create(sl^);
cmp.ParentWindow:=sl.Handle;
cmp.Top:=20;
cmp.Left:=20;
cmp.Width:=300;
end;
exports
mess index 1,
CreateMyEdit index 2;
{$R *.res}
begin
end.
//===========================В Проекте==================================
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
PForm = ^TForm;
var
Form1: TForm1;
procedure mess();external 'Project2.dll'
procedure CreateMyEdit(sl:PForm);external 'Project2.dll'
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
mess();
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateMyEdit( @Form1 );
end;
end.
Ну а чем этот метод не устраивает?
а зачем мне форма лишняя.
Вобщем нашел решение. Поместил в DLL модуль компонента и реализовал в DLL все необходимые функции по созданию и управлению компонентом.
а зачем мне форма лишняя.
А где ты тут лишнюю форму увидел?