加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi如何在form显示出来后处理指定的事件(例如自动登录)

发布时间:2020-12-15 09:53:07 所属栏目:大数据 来源:网络整理
导读:最近写一个delphi客户端,遇到一个自动登录问题,已经解决了思路如下: 1.在Form的oncreate事件中读取用户配置文件,检查及处理是否保存了用户密码,是否自动登录,如果需要自动登录, 自动登录前的checkbox打勾,用户名,密码放入 ? 2.在Form的FormActivate事

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

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

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

?

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

?

用这个windows函数发送消息: PostMessage(Handle,UM_CHECKFIRSTRUN,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,0,0);
    
end;
//延迟指定时间
procedure delay(msecs:integer);
var
  Tick: DWord; 
  Event: THandle;
 
 
  begin
  Event := CreateEvent(nil,False,nil); 
  try
    Tick := GetTickCount + DWord(msecs); 
    while (msecs > 0) and (MsgWaitForMultipleObjects(1,Event,msecs,QS_ALLINPUT) <> WAIT_TIMEOUT) do
    begin
      Application.ProcessMessages; 
      msecs := Tick - GetTickcount; 
    end;
  finally
    CloseHandle(Event);
  end
  end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读