程序已经做好了,我怎么实现这个功能?(50分)

  • 主题发起人 主题发起人 nywjx
  • 开始时间 开始时间
N

nywjx

Unregistered / Unconfirmed
GUEST, unregistred user!
我个一个程序已经做好了,程序界面是SDI的,可是现在要增加这样一个功能:
平时将主界面缩小,程序缩小至任务栏上;
需要使用的时候,点击任务栏上的图标,首先需要输入用户名和口令,验证正确后才显示
主界面。


我以前做过状态栏编程。但是这次不想这样做。有没有简单一点的,比如说:根据主界面
的状态(最大、最小、激活、不激活等)来实现?
 
在 Application.OnRestore 事件里面实现
 
如果你有Rxlib的话,实现起来比较简单,如果没有,不妨试试这个程序:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ShellAPI,
StdCtrls, Menus;

const
WM_TRAYNOTIFY = WM_USER+100;

type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure TrayNotifyMessage(var Sender: TMessage); message WM_TRAYNOTIFY;
procedure MarkTaskBarIcon(Sender: TObject);
public
{ Public declarations }
end;

var
Form1: TForm1;
tnd : TNOTIFYICONDATA;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := MarkTaskBarIcon;
end;

procedure TForm1.MarkTaskBarIcon(Sender: TObject);
begin
Form1.Visible := False;
tnd.cbSize := sizeof(tnd);
tnd.Wnd := Handle;
tnd.uID := 128;
tnd.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
tnd.uCallbackMessage := WM_TRAYNOTIFY;
tnd.hIcon := Application.Icon.Handle;
StrPCopy(tnd.szTip,Application.Title);
Shell_NotifyIcon(NIM_ADD,@tnd);
end;

procedure TForm1.TrayNotifyMessage(var Sender: TMessage);
begin
if Sender.LParam = WM_LBUTTONDBLCLK then
begin
Shell_NotifyIcon(NIM_DELETE,@tnd);
Form1.Visible := True;
Application.Restore;
Application.BringToFront;
end;
if wm_size=1 then

end;

end.
 
能说详细点吗?
 
不明白你要怎么做
 
这样说吧:这个程序是个服务器程序,还有一个客户端程序。但是现在这两个程序放在
同一台机器上,所以为了防止客户端操作员随意更改服务器程序中的数据,我想给服务器
程序增加一个功能:就是平时这个服务器程序正常运行,但是不显示主界面;当需要进入
这个程序时,需要输入用户名和口令。
怎么实现呢?
 
多人接受答案了。
 
后退
顶部