最近发现进销存系统有一个小问题,从前没有发现,
当系统出现系统登录介面时,这时我按下"ALT+F4"
就可以跳过系统登陆介面直接进入系统,
请问一下这个问题该怎么解决,谢谢各位了!

解决方案 »

  1.   

    呵呵,应该是bug, 登录逻辑有问题,如果你能改程序的话就好办了。
      

  2.   

    procedure StopAltF4(var msg:tmessage);message WM_CLOSE; procedure tform1.StopAltF4(var msg:tmessage);
      begin
       showmessage('frmLogin show');
      end;
      

  3.   

    frmLogin.ShowModal
    这样子显示登陆窗口
      

  4.   

    应该是在登录时没有控制好吧,比如有没有设result := ShowModal=mrok什么的,控制不好的话估计会出现这样的问题的
      

  5.   

    if frmLogin.ShowModal = mrOK then
      frmMain.show
    else
      close;
      

  6.   

    ..
    ..var
      Form1: TForm1;
      i:boolean;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
    i:=false;
    end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    canclose:=i;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    i:=not i;
    form1.Close;
    end;..
    ..
      

  7.   

    哈哈,用这个:
    在FormKeyDown事件中加入:
      {屏蔽ALT + F4}
      if (Key = VK_F4) and (ssAlt in shift) then  //注意同时要将FORM的 KEYPREVIEW设置为TRUE
        Key:=0;
      

  8.   

    或者用这个://如:
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if key=115 then begin
      showmessage('按了ALT+F4键');
      abort;
    end;
      

  9.   

    楼上的想法是好的,答案是错的。
    在OnKeyDown里写。procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
     if (Key = VK_F4) and (ssAlt in shift) then
        Key:=0;
    end;
      

  10.   

    不要将登陆做在窗体上,而是在系统窗体上放一盛放登陆信息的载体,如:panel后是其他什么都行了。
      

  11.   

    回复人: gxgyj(杰克.逊_Discovery) ( ) 信誉:94  2005-08-31 10:30:00  得分: 0  
     
      

  12.   

    呵呵,你别这样写啊,你是不是把主界面先拿出来,然后再用一个登录界面挡在前面,这样登录界面由于是一个窗体,可以被Alt+f4关闭,你可以让登录窗体必须要返回mrOK的时候才判断,其他情况统统算取消退出系统
      

  13.   

    我通常的做法是:设一个全局变量islogin:boolean,初始化为false,只有当登陆成功才将该值设为ture,在工程文件里写
     Frmlogin:=Tfrmlogin.Create(Frmlogin);
      Frmlogin.ShowModal;
      if not isLogin then exit;  Application.Initialize;
      Application.CreateForm(TFrmMain, FrmMain);
      Application.CreateForm(TFrmAbout, FrmAbout);
      Application.Run;
      

  14.   

    改程序,login窗体关闭后检查登陆信息是否合法。
      

  15.   

    判断modalresult值
    if FrmLogin.showModal=mrOK then
      FrmMain.Show;
    alt+F4 关掉时modalresult肯定不是mrOK