K
kim_fu
Unregistered / Unconfirmed
GUEST, unregistred user!
在MDI主窗口中。可以使用 ActiveMdiChild获得当前的活动的子窗口,
但问题是。当我使用以下代码调用DLL中的子窗口时。MDIChildCount根本没有加一
而ActiveMdiChild也获得不了当前活动的子窗口。但是我确实创建了DLL中的子窗口
下面是代码。是不是代码有问题?(这个代码也是在论坛上别人给我的)
只剩下35分了。全给了。
Dll的写法
Exports
TechTemplateFormCreate; //¹¤ÐòÄ£°å
Var DllApplication:TApplication;
DllScreen:TScreen;
{$R *.RES}
procedure LibraryProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
begin
Screen:=DllScreen;
Application:=DllApplication;
end;
end;
begin
DllApplication:=Application;
DllScreen:=Screen;
DLLProc:=@LibraryProc;
end.
----------------------------------------
TechTemplateForm
-------------
Procedure TechTemplateFormCreate(MDIApplication:TApplication);Export;
implementation
{$R *.DFM}
Procedure TechTemplateFormCreate(MDIApplication:TApplication);Export;
begin
if (not Assigned(TechTemplateForm)) then
begin
Application:=MDIApplication;
TechTemplateForm:=TTechTemplateForm.Create(Application);
end
else
begin
//TechTemplateForm.WindowState:=wsNormal;;
TechTemplateForm.BringToFront;
end;
end;
但问题是。当我使用以下代码调用DLL中的子窗口时。MDIChildCount根本没有加一
而ActiveMdiChild也获得不了当前活动的子窗口。但是我确实创建了DLL中的子窗口
下面是代码。是不是代码有问题?(这个代码也是在论坛上别人给我的)
只剩下35分了。全给了。
Dll的写法
Exports
TechTemplateFormCreate; //¹¤ÐòÄ£°å
Var DllApplication:TApplication;
DllScreen:TScreen;
{$R *.RES}
procedure LibraryProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
begin
Screen:=DllScreen;
Application:=DllApplication;
end;
end;
begin
DllApplication:=Application;
DllScreen:=Screen;
DLLProc:=@LibraryProc;
end.
----------------------------------------
TechTemplateForm
-------------
Procedure TechTemplateFormCreate(MDIApplication:TApplication);Export;
implementation
{$R *.DFM}
Procedure TechTemplateFormCreate(MDIApplication:TApplication);Export;
begin
if (not Assigned(TechTemplateForm)) then
begin
Application:=MDIApplication;
TechTemplateForm:=TTechTemplateForm.Create(Application);
end
else
begin
//TechTemplateForm.WindowState:=wsNormal;;
TechTemplateForm.BringToFront;
end;
end;