L
lvloj
Unregistered / Unconfirmed
GUEST, unregistred user!
忽然发现自己的程序不能最小化了, 最小化按钮不是灰掉的, 但点击它没有作用.
窗体是默认设置, 也没有用第三方的控件.
在我一句代码一句代码的屏蔽编译测试后,发现是一个调用DLL窗口的语句引起的(调用的DLL是静态加载的).DLL是自己写的,不能理解的是不执行那个调用DLL窗体的函数, 仅仅是编译到程序中,就不能最小化了.
而后的测试中发现, 使用DLL还是可以最小化的, 但调用的程序不能通过其他程序执行.
具体情况是: 我有个程序A, 执行以后, 可以调用程序B(B有调用DLL的语句.A,B都是Exe文件), 程序B就不能最小化. 如果程序B直接运行, 那么程序B可以最小化.
但现在我的程序B必须是由程序A来调用的.
还有就是程序如果在编译的时候选择上Build with runtime packages就不能最小化, 不选择则可以正常最小化.
Dll函数:
function ShowDllForm(const AppHandle: HWND; const ParamPack: OleVariant; var Data: OleVariant): Boolean; stdcall;
实现:
function ShowDllForm(const AppHandle: HWND; const ParamPack: OleVariant; var Data: OleVariant): Boolean; stdcall;
begin
Application.Handle := AppHandle;
Result := False;
FormCondition := TFormCondition.Create(Application);
with FormCondition do
try
...
ShowModal;
finally
Free;
end;
end;
请问: 问题出在哪里, 怎么解决.
谢谢!
窗体是默认设置, 也没有用第三方的控件.
在我一句代码一句代码的屏蔽编译测试后,发现是一个调用DLL窗口的语句引起的(调用的DLL是静态加载的).DLL是自己写的,不能理解的是不执行那个调用DLL窗体的函数, 仅仅是编译到程序中,就不能最小化了.
而后的测试中发现, 使用DLL还是可以最小化的, 但调用的程序不能通过其他程序执行.
具体情况是: 我有个程序A, 执行以后, 可以调用程序B(B有调用DLL的语句.A,B都是Exe文件), 程序B就不能最小化. 如果程序B直接运行, 那么程序B可以最小化.
但现在我的程序B必须是由程序A来调用的.
还有就是程序如果在编译的时候选择上Build with runtime packages就不能最小化, 不选择则可以正常最小化.
Dll函数:
function ShowDllForm(const AppHandle: HWND; const ParamPack: OleVariant; var Data: OleVariant): Boolean; stdcall;
实现:
function ShowDllForm(const AppHandle: HWND; const ParamPack: OleVariant; var Data: OleVariant): Boolean; stdcall;
begin
Application.Handle := AppHandle;
Result := False;
FormCondition := TFormCondition.Create(Application);
with FormCondition do
try
...
ShowModal;
finally
Free;
end;
end;
请问: 问题出在哪里, 怎么解决.
谢谢!