zoukankan      html  css  js  c++  java
  • delphi如何在form显示出来后处理指定的事件(例如自动登录)

    最近写一个delphi客户端,遇到一个自动登录问题,已经解决了思路如下:

    1.在Form的oncreate事件中读取用户配置文件,检查及处理是否保存了用户密码,是否自动登录,如果需要自动登录,

    自动登录前的checkbox打勾,用户名,密码放入

    2.在Form的FormActivate事件中处理自动登录业务,因为这个activate事件发生于formshow出来之后

    用这个windows函数发送消息: PostMessage(Handle, UM_CHECKFIRSTRUN, 0, 0);

    定义自己的函数来捕获处理消息:
    ---------------------
    作者:银河使者
    来源:CSDN
    原文:https://blog.csdn.net/zkrui2008/article/details/40511597
    版权声明:本文为博主原创文章,转载请附上博文链接!

    procedure UmCheckFirstRun(var Message: TMessage); message UM_CHECKFIRSTRUN;
     
    procedure TForm1.UmCheckFirstRun(var Message: TMessage);
    begin
     
     delay(1000);    //延迟一个时间,不然用户会很诧异
     readyLoginData;     //处理自动登录业务的方法
    end;
    
    --------------------- 
    作者:银河使者 
    来源:CSDN 
    原文:https://blog.csdn.net/zkrui2008/article/details/40511597 
    版权声明:本文为博主原创文章,转载请附上博文链接!
    begin
        //sleep(1000);
        PostMessage(Handle, UM_CHECKFIRSTRUN, 0, 0);
        
    end;
    //延迟指定时间
    procedure delay(msecs:integer);
    var
      Tick: DWord; 
      Event: THandle;
     
     
      begin
      Event := CreateEvent(nil, False, False, nil); 
      try
        Tick := GetTickCount + DWord(msecs); 
        while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <> WAIT_TIMEOUT) do
        begin
          Application.ProcessMessages; 
          msecs := Tick - GetTickcount; 
        end;
      finally
        CloseHandle(Event);
      end
      end;
  • 相关阅读:
    teb教程1
    teb-安装
    47个项目管理过程之项目干系人管理
    47个项目管理过程之项目采购管理
    47个项目管理过程之项目风险管理
    47个项目管理过程之项目沟通管理
    47个项目管理过程之项目人力资源管理
    47个项目管理过程之项目质量管理
    47个项目管理过程之项目成本管理
    47个项目管理过程之项目时间管理
  • 原文地址:https://www.cnblogs.com/westsoft/p/10360381.html
Copyright © 2011-2022 走看看