| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1978 人关注过本帖, 1 人收藏
标题:(关于文本控件属性值保存的问题)我需要自动保存一些设置好的信息该怎么写 ...
只看楼主 加入收藏
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
结帖率:83.33%
收藏(1)
已结贴  问题点数:20 回复次数:15 
(关于文本控件属性值保存的问题)我需要自动保存一些设置好的信息该怎么写呢!

图片附件: 游客没有浏览图片的权限,请 登录注册

这个代码是我搜来的!
程序代码:
Private Sub Form_Load()
    Me.Width = GetSetting(App.Title, Me.Name, "Width", 7200)
Me.Height = GetSetting(App.Title, Me.Name, "Height", 6300)
Me.Top = GetSetting(App.Title, Me.Name, "Top", 100)
Me.Left = GetSetting(App.Title, Me.Name, "Left", 100)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call SaveSetting(App.Title, Me.Name, "Width", Me.Width)
    Call SaveSetting(App.Title, Me.Name, "Height", Me.Height)
    Call SaveSetting(App.Title, Me.Name, "Top", Me.Top)
    Call SaveSetting(App.Title, Me.Name, "Left", Me.Left)
End Sub
我需要自动保存一些设置好的信息该怎么写呢!列入我填写好一些控件里的信息!可以点击
保存键或者不点击在我关闭工具的时候可以自动保存,打开后自动读取!只用保存一次设置的信息就可以!如果有新信息要输入!我可以点击清除从新设置!
我搜了一下相关资料,像我这样只保存这么一点信息的花可以不用生成TXT或者INI或者数据库!,实现这样的功能我应该怎么写代码呢!!各位师傅帮帮忙了!!谢谢了!!

一下是建立好的工程!方便帮助我的师傅们就不用创建界面了!!
工程1.rar (4.69 KB)
搜索更多相关主题的帖子: 信息 
2013-01-22 12:05
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:20 
程序代码:
Option Explicit

Private Sub Command1_Click()
    SaveSettingEx Text1, Text2, Text3, Text4, Text5, Text6
End Sub

Private Sub Command2_Click()
    DeleteSettingEx Text1, Text2, Text3, Text4, Text5, Text6
End Sub

Private Sub Form_Load()
    Me.Width = GetSetting(App.Title, Me.Name, "Width", 7200)
    Me.Height = GetSetting(App.Title, Me.Name, "Height", 6300)
    Me.Top = GetSetting(App.Title, Me.Name, "Top", 100)
    Me.Left = GetSetting(App.Title, Me.Name, "Left", 100)
    GetSettingEx Text1, Text2, Text3, Text4, Text5, Text6
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Me.WindowState <> vbMinimized Then '最小化退出有点问题。负值
        Call SaveSetting(App.Title, Me.Name, "Width", Me.Width)
        Call SaveSetting(App.Title, Me.Name, "Height", Me.Height)
        Call SaveSetting(App.Title, Me.Name, "Top", Me.Top)
        Call SaveSetting(App.Title, Me.Name, "Left", Me.Left)
    End If
End Sub

Public Sub DeleteSettingEx(ParamArray vControls() As Variant)
    Dim v As Variant
    For Each v In vControls
        If TypeOf v Is TextBox Then ' 可以自行添加别的控件设置 CommandButton TextBox 等
            Call DeleteSetting(App.Title, Me.Name, v.Name)
        End If
    Next
End Sub

Public Sub GetSettingEx(ParamArray vControls() As Variant)
    Dim v As Variant
    For Each v In vControls
        If TypeOf v Is TextBox Then ' 可以自行添加别的控件设置 CommandButton TextBox 等
            v.Text = GetSetting(App.Title, Me.Name, v.Name, "默认值") '默认值自己设置
        End If
    Next
End Sub

Public Sub SaveSettingEx(ParamArray vControls() As Variant)
    Dim v As Variant
    For Each v In vControls
        If TypeOf v Is TextBox Then
            Debug.Print Me.Name, v.Name, v.Text
            Call SaveSetting(App.Title, Me.Name, v.Name, v.Text)
        End If
    Next
End Sub
可以自己用了。。。话说,咱一般都是用INI的呐,这个也不错。
2013-01-22 12:55
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 2楼 bczgvip
那bczgvip 这个是不用INI的吧!我数据不多!如果用INI是不是没必要呢?
那如果要使用INI在你现在这个代码里需要怎么修改来实现嗯!!!

感谢死你了!呵呵
2013-01-22 13:15
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 2楼 bczgvip
对了!!不用声明吗!!!?
2013-01-22 13:16
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 2楼 bczgvip
bczgvip
我测试了!!我点清除出现出错!!!!
2013-01-22 13:20
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
自己写错误处理吧,不存在则出错。
2013-01-22 18:20
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 6楼 bczgvip
        If TypeOf v Is COMBOBox Then ' 可以自行添加别的控件设置 CommandButton TextBox 等
            v.LIST = GetSetting(App.Title, Me.Name, v.Name, "默认值") '默认值自己设置
        End If
v.LIST 在这是不是应该加索引哦。bczgvip拜托了。你帮我处理一下啦
2013-01-22 20:17
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 6楼 bczgvip
bczgvip   我想加个ListBox,这样就不用那么多TEXT了!!但是怎么改都出错!
 v.List1 = GetSetting(App.Title, Me.Name, v.Name, "List1.List")  这个出错!
v.Text = GetSetting(App.Title, Me.Name, v.Name, "List1.List") 这样能运行!但是保存之会出现Form1         List1  没有值!

ListBox要赋值或者让TEXT获得值是 Text1 = List1.List(1)这个是获得第2个选项里的值对吧!Text1 = List1.List(List1.ListIndex)这是选择赋值对吧!
我是什么地方书写不对呢!!!还是不用应该这么写??

 v.Text = GetSetting(App.Title, Me.Name, v.Name, "0")
        
v.Name这个不是名称名可以填写List1,但是填写后都不对!!!!!

[ 本帖最后由 qiziyun 于 2013-1-23 05:50 编辑 ]
2013-01-23 04:30
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
list1.additem "123"
list1.list(0) = "456" '要添加数据才能改呐。
你要做啥?话说通宵编程?有毅力。
程序代码:
Public Sub GetSettingEx(ParamArray vControls() As Variant)
#Const DEBUG_TYPE = False 'True False
#If DEBUG_TYPE Then
    Dim v As ListBox
#Else
    Dim v As Variant
#End If
    For Each v In vControls
        If TypeOf v Is TextBox Then ' 可以自行添加别的控件设置 CommandButton TextBox 等
            v.Text = GetSetting(App.Title, Me.Name, v.Name, "默认值") '默认值自己设置
        ElseIf TypeOf v Is ListBox Then
            Dim i As Long, n As Long
            n = GetSetting(App.Title, Me.Name, v.Name, 1) '0
            For i = 0 To n - 1
                v.AddItem GetSetting(App.Title, Me.Name, v.Name & i, "默认值")
            Next
        End If
    Next
End Sub
2013-01-23 14:07
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 9楼 bczgvip
昨晚看电影看晚了!然后就改改看!结果一直出错
2013-01-23 15:37
快速回复:(关于文本控件属性值保存的问题)我需要自动保存一些设置好的信息该怎 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019265 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved