我们的要求是,首先打开主窗口,然后显示登录界面,用户最多可以尝试登录3次,如果登录成功,则根据用户权限初始化主窗口界面,否则关闭整个应用。
登录程序看似简单,实际上涉及到的知识不少。知识点有:SQL语句的使用、窗口类型的理解、SingleLineEdit控件、CommandButton的属性的应用、自定义用户事件、如何触发自定义用户事件、使用窗口实例变量、不同窗口之间如何传递信息等。下面我们开始实现该程序。
设计登录窗口w_login,放置两个SingleEdit、两个CommandButton,分别命名为sle_userid、sle_password、cb_cancel、cb_ok;选中sle_password的password属性。为了计算用户尝试登录的次数,首先定义一个窗口实例变量:
integer ii_count = 3
用户在sle_userid中输入用户登录标志,回车时应该自动切换到sle_password中。所以,在sle_userid的Modified事件中编写如下脚本:
sle_password.SetFocus()
同样,用户在sle_password中输入完口令,然后回车,这时应该对用户输入的登录信息进行校验,所以需要触发cb_ok按钮的Clicked事件。所以,在sle_password的Modified事件中编写如下脚本:
cb_ok.Default = True
上面为什么不能使用cb_ok.TriggerEvent(Clicked!)呢?细心的读者请先自己琢磨。接下来是我们的主要编程了,在cb_ok命令按钮的Clicked事件上编写如下脚本:
String ls_userid
String
登录程序看似简单,实际上涉及到的知识不少。知识点有:SQL语句的使用、窗口类型的理解、SingleLineEdit控件、CommandButton的属性的应用、自定义用户事件、如何触发自定义用户事件、使用窗口实例变量、不同窗口之间如何传递信息等。下面我们开始实现该程序。
设计登录窗口w_login,放置两个SingleEdit、两个CommandButton,分别命名为sle_userid、sle_password、cb_cancel、cb_ok;选中sle_password的password属性。为了计算用户尝试登录的次数,首先定义一个窗口实例变量:
integer ii_count = 3
用户在sle_userid中输入用户登录标志,回车时应该自动切换到sle_password中。所以,在sle_userid的Modified事件中编写如下脚本:
sle_password.SetFocus()
同样,用户在sle_password中输入完口令,然后回车,这时应该对用户输入的登录信息进行校验,所以需要触发cb_ok按钮的Clicked事件。所以,在sle_password的Modified事件中编写如下脚本:
cb_ok.Default = True
上面为什么不能使用cb_ok.TriggerEvent(Clicked!)呢?细心的读者请先自己琢磨。接下来是我们的主要编程了,在cb_ok命令按钮的Clicked事件上编写如下脚本:
String ls_userid
String