应用程序最小化恢复之前出现登陆框,验证密码正确后进入主界面,不对则还是最小化,如何实现?(10分)

  • 主题发起人 主题发起人 mdc
  • 开始时间 开始时间
M

mdc

Unregistered / Unconfirmed
GUEST, unregistred user!
应用程序最小化恢复之前出现登陆框,验证密码正确后进入主界面,
不正确则还使程序最小化,如何实现?
没分了,有分再加
 
form1create()
form1.windowstate:=wsminimized;
form2.show;//出现登陆框!

在form2中加入代码:
当密码通过时:form1.windowstate:=wsnormal;
不通过则不作反应!
 
一:先拦截最大化消息(自己查一下,很多的)
二:屏蔽该消息,并显示自己的密码验证窗体
三:如果验证通过,再调用最大化方法

 
procedure TfrmMain.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
if WindowState=wsMinimized then resize:=false else begin
Application.CreateForm(tfrmpass,frmpass);
frmpass.ShowModal;
end;
end;
 
我的程序最小化为一个托盘图标,双击它的时候想拦截restore消息,实现上面的功能,该怎么做呢
 
这个方法能拦截最大化,最小化,关闭系统消息,但不知你想要的结果是什么,仅提供参考。
private
{ Private declarations }
Procedure WMSysCommand(Var Msg : TMessage) ;
Message WM_SYSCOMMAND ;

Procedure TForm1.WMSysCommand(Var Msg : TMessage) ;
begin
if (Msg.WParam = SC_CLOSE) then
begin
.................
end
else if (Msg.WParam = SC_MINIMIZE) then
begin
.............
end
else
inherited;
end ;
 
原来是这样,刚才没看到,你可以这样做。
procedure Tfrmmain.OnIconNotify(var Message: TMessage);
var
nid: TNotifyIconData;
begin
if Message.LParam=WM_LBUTTONDBLCLK then
begin
self.BringToFront;
show;
nid.cbSize := sizeof(nid); // nid变量的字节数
nid.cbSize := sizeof(nid);// nid变量的字节数
nid.uID :=8; //内部标识,与加入小图标时的数一致
nid.Wnd := Handle; //主窗口句柄
Shell_NotifyIcon(NIM_DELETE, @nid); //去掉小图标
end;
end;
这样就搞定了吧,呵呵。。。
 
大哥,是我的问题我没说清楚吗?
 
我是想拦截应用程序的applicatio.restore消息。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部