我 DLL 中的窗体为什么不能最小化?!(200分)

K

Kisber

Unregistered / Unconfirmed
GUEST, unregistred user!
我的一组通用程序放在 DLL 中,问题是,那些窗口怎么都最小化不了!
而不编成 DLL 又爱它怎么小就怎么小。
气杀我也。
 
不会吧,看看你窗体类型的设置
 
设置没问题,是正常的设置。
你想想,将这些程序文件直接编入项目内,运行很正常,正常到不能再正常了!
但独立出来,除了所有 DLL 里的 FORM 不能最小化之外,其它也很正常。
哎。
 
提一提:大家帮帮我吧!!!!!!
 
很理解你的心情,你会不会在Application 创建时处理了一些消息?如果你什么也没有做,可以在DLL的窗口中试一下下面的代码。
.........
public
procedure AppMessage(var Msg:TWMSYSCOMMAND);message WM_SYSCOMMAND;
{ Public declarations }
end;

var
server_Form: Tserver_Form;

implementation
{$R *.DFM}

procedure Tserver_Form.AppMessage(var Msg:TWMSYSCOMMAND);
begin
if msg.CmdType=sc_minimize then
Begin
inherited;
Hide;
end;
end;
 
很对不起,上面的代码应改为:
procedure Tserver_Form.AppMessage(var Msg:TWMSYSCOMMAND);
begin
if msg.CmdType=sc_minimize then
Begin
Application.Minimize;
end;
end;
 
老大,不行!
连最大化都不行了。:)
 
请问你在创建DLL有无传递 Application.handle 到DLL;即有无handle 参数,如果没有你应该加上;如果有传递,请将DLL调用DLL窗口的函数贴出来。
 
自己解决了!
DLL 中 OnResize 时如果重置控件尺寸并超出“新范围”的话……我的问题就产生
了。:)

to TMXYB:
没必要传入 Application.Handle ! 因为当 Call A DLL 时,DLL 的 Application
就是 Caller 的 Application , 不信你试试。
谢谢你们关心。
分我还是给你们吧。
 
再次谢谢。
 
OnResize 时如果重置控件尺寸并超出“新范围”是何意?
OnResize 内是不是有给DLL改变消息的事件,能不能将代码贴出来,或发到我邮箱
tmxyb@vip.sina.com
DLL 中参数的传递确实是个学问,我没有试过不传 APPLICATION.handle 的,我想不传的话,你的话应该是对的。
 
老大,我都给了你 150 了你还不知足!还要看我的原程序。
太贪了吧?
呵呵,不过,我把我解决的地方贴出来,也许有用哦。

//将
{
procedure TctDeFunc.pnlModifyResize(Sender: TObject);
var
w :Integer;
begin
if WindowState <> wsMinimized then begin //这都不行!呵呵。
w := pnlModify.Width;
if w > 417 then
Dec(w, 120)
else
w := 297; //就坏在这里。
edMdfExpr.Width := w;
edMdfEffect.Width := w;
edMdfName.Width := w;
edMdfNote.Width := w;
edMdfSQL.Width := w;
edMdfParam.Width := w;
edMdfRm.Width := w;
btnMdfViewEffect.Left := w + 88;
end;
end;
}
//改成
procedure TctDeFunc.pnlModifyResize(Sender: TObject);
var
w :Integer;
begin
w := pnlModify.Width;
if w > 417 then begin
Dec(w, 120)
edMdfExpr.Width := w;
edMdfEffect.Width := w;
edMdfName.Width := w;
edMdfNote.Width := w;
edMdfSQL.Width := w;
edMdfParam.Width := w;
edMdfRm.Width := w;
btnMdfViewEffect.Left := w + 88;
end;
end;

// That's OK.
 
我喜欢词,我喜欢笛子,我喜欢ASM&C++,我喜欢女人,就是不喜欢Delphi!但我又不得不使用Delphi,用到差不多不记得AC女人的味道了。是喜?是悲?……

你这个人有境界!够水平,如果你以后能给我答题,决不会少你分,呵呵..
 
顶部