读书人

多两个“零”带来的思考

发布时间: 2012-08-11 20:50:31 作者: rapoo

多两个“0”带来的思考

在做学生管理系统中,由于并不太理解函数的意思,前几天就在程序的后面多写了两个0

Private Sub MDIForm_Load()      '从注册表中取得上次关闭MDIForm时的大小    Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 30000)    Me.Top = GetSetting(App.Title, "Settings", "MainTop", 30000)    Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 80000)    Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 80000)    End Sub


原来的文章本应该是

Private Sub MDIForm_Load()      '从注册表中取得上次关闭MDIForm时的大小    Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 300)    Me.Top = GetSetting(App.Title, "Settings", "MainTop", 300)    Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 800)    Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 800)    End Sub

当时并没有做任何记录,异地访问的过程当中,数据库能连上是没有任何问题,但是就是加载的登录界面就消失了,没有任何反应、提示错误之类的,后来在师傅的指导下,才发现这个问题,是由于多了两个0,是窗体的大小不能显示出来了,超出了屏幕的显示范围。我还以为真的消失了呢?

发现自己的问题:第一:没有及时的记录

第二:没有遵循严格的编程标准

第三:没有及时的学习相关的知识

第四:思考的还是太少,考虑不全,“为人民服务的宗旨”落实的不好

随后进行了相关知识的学习

Private Sub MDIForm_Load()      '从注册表中取得上次关闭MDIForm时的大小    Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 3000)    Me.Top = GetSetting(App.Title, "Settings", "MainTop", 30000)    Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 80000)    Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 80000)    End SubPrivate Sub MDIForm_Unload(Cancel As Integer)    If Me.WindowState <> vbMinimized Then        SaveSetting App.Title, "Settings", "MainLeft", Me.Left        SaveSetting App.Title, "Settings", "MainTop", Me.Top        SaveSetting App.Title, "Settings", "MainWidth", Me.Width        SaveSetting App.Title, "Settings", "MainHeight", Me.Height    End IfEnd Sub


在加载多文档界面时,选定多文档界面的大小和位置是从保存的第一次打开的位置。将注册表中第一次打开多文档界面窗体的位置显示出来。

而在下载窗体时,将保存此次开始打开多文档界面的位置。 上边这两段代码的作用就是:程序退出时保存在屏幕上的显示位置记主窗体的大小,再次打开程序时主窗体就显示在上次关闭时的位置处,而且大小也和上次关闭时的大小相同。

SaveSetting appname, section, key, value

下列代码保存 Backup 和 LastEntry 表项的新值,这些表项包含在名为“RegCust”的应用程序的注册位置的启动部分。该代码假设变量 strDate 和 intLastEntry 包含有新的值。
Private Sub Form_Unload(Cancel As Integer)    SaveSetting "RegCust", "Startup", "Backup", strDate    SaveSetting "RegCust", "Startup", "LastEntry", _    intLastEntryEnd Sub


如果在注册位置的 Software/Microsoft 部分没有应用程序“RegCust”的注册项、或者没有这些指定的部分或注册表项,该代码将创建它。检索应用程序设置值可以使用 GetSetting 和 GetAllSettings 函数检索存储在应用程序注册位置的注册值。例如,应用程序能够检索注册表设置值以便在它被关闭时重新建立其条件。一次检索一项设置值如果仅检索一项注册表设置值,通过以下的语法使用 GetSetting 函数:GetSetting(appname, section, key[, default])下列代码检索“RegCust”应用程序启动部分的 LastEntry 表项的值,并将该值显示在立即窗口中。
Private Sub Form_Load()    Dim intLastEntry As Integer    intLastEntry = GetSetting("RegCust", "Startup", _    "LastEntry", "0")    Debug.Print intLastEntryEnd Sub

应注意,可以使用可选的参数 default 设置,当注册位置中指定的表项没有值时由 Visual Basic 返回的值。一次检索多项设置值如果检索多项注册表项的值,通过以下的语法使用 GetAllSettings 函数:GetAllSettings(appname, section)下列代码检索“RegCust”应用程序启动部分的两栏注册表项的值,并将其结果显示在立即窗口中。
Private Sub Form_Load()    Dim avntSettings As Variant    Dim intX As Integer    avntSettings = GetAllSettings("RegCust", "Startup")    For intX = 0 To UBound(avntSettings, 1)       Debug.Print avntSettings(intX, 0), _       avntSettings(intX, 1)    Next intXEnd Sub

删除应用程序设置值可以使用 DeleteSetting 语句删除注册表项、注册部分或者应用程序注册位置。例如,当卸载一个应用程序时,也许希望删除该应用程序的所有注册表信息。通过以下语法使用 DeleteSetting 语句:DeleteSetting(appname, section, key)下列代码删除“RegCust”应用程序启动部分中的 LastEntry 注册表项。
Private Sub cmdDelKey_Click()    DeleteSetting "RegCust", "StartUp", "LastEntry"End Sub

下列代码删除“RegCust”应用程序注册位置的整个 StartUp 部分。
Private Sub cmdDelSection_Click()    DeleteSetting "RegCust", "StartUp"End Sub

下列代码删除“RegCust”应用程序整个注册位置。
Private Sub cmdUnInstall_Click()    DeleteSetting "RegCust"End Sub
20楼qq9751200432小时前
新手,多多指教;、
Re: lishehe2小时前
回复qq975120043n共同学习,加油
19楼hejingyuan62小时前
学习了
Re: lishehe2小时前
回复hejingyuan6n共同进步啊[e04]
18楼a1314517love3小时前
很不错,加油,顶一个,长收
Re: lishehe3小时前
回复a1314517loven向师哥学习
17楼zhuojiajin3小时前
看你的博客开始迷糊了!
Re: lishehe3小时前
回复zhuojiajinn慢慢的就好了,过度……[e04]
16楼han_yankun200911小时前
多注意呀
Re: lishehe3小时前
回复han_yankun2009n恩恩
15楼leimengyuanlian昨天 20:10
果然是高手
Re: lishehe昨天 20:50
回复leimengyuanliann努力ing
14楼laner0515昨天 19:52
哎哟,不错哦
Re: lishehe昨天 19:52
回复laner0515n[e03]
13楼zllaptx4869昨天 19:51
牛~
Re: lishehe昨天 19:52
回复zllaptx4869n[e03]
12楼mazhaojuan昨天 19:23
这就是成长!
Re: lishehe昨天 19:50
回复mazhaojuann恩恩,谢谢师姐
11楼zhanglianhai555昨天 19:06
加油!
Re: lishehe昨天 19:15
回复zhanglianhai555n[e04]
10楼shan9liang昨天 17:17
真是一届比一届强啊
Re: lishehe昨天 17:37
回复shan9liangn师哥多多指教啊
9楼liutengteng130昨天 16:23
学习了。。
Re: lishehe昨天 16:23
回复liutengteng130n[e04]
8楼yingjiebohe昨天 16:22
好长的博文啊。还是支持一下。
Re: lishehe昨天 16:22
回复yingjiebohen多多支持啊,师姐,呵呵
7楼aboy123昨天 16:21
总结的不错
Re: lishehe昨天 16:21
回复aboy123n加油[e03]
6楼sunliduan昨天 15:35
很棒!加油!
Re: lishehe昨天 16:21
回复sunliduann加油
5楼wangyongxia921昨天 14:29
牛!
Re: lishehe昨天 14:30
回复wangyongxia921n[e03]
4楼zhangyingjie09昨天 14:28
不错,学习了。
Re: lishehe昨天 14:29
回复zhangyingjie09n加油
3楼huanjileaimeidan昨天 14:21
加油
Re: lishehe昨天 14:27
回复huanjileaimeidann[e04]
2楼a19891120scsc昨天 13:23
学习了,好文章!!!!!!!!!!!
Re: lishehe昨天 13:23
回复a19891120scscn欢迎指正!
1楼lantingxv_jing昨天 11:44
越来越看不懂了
Re: lishehe昨天 12:55
回复lantingxv_jingn越来越会看懂得啊

读书人网 >其他数据库

热点推荐