|
6#
楼主 |
发表于 2008-3-20 14:43:26
|
只看该作者
咱家是猫给出的另一种解决方案
Function hy_EffectShiftTextOne(ctl As Control, strSplitText As String, strDelimiter As String)
'===============================================================================
'功能描述:在指定控件中交替切换显示任何多个用户输入的提示文字
'参数说明:ctl为文本或标签控件;strSplitText为多个组合文本,组合的分割符号可以使用strDelimiter来指定,一般建议用";"
'使用范例:hy_EffectShiftText Me.Text100, "先显示我;再显示你;接着再显示我",";"
'使用注意:必须要在模块级声明变量ShiftID,而不能纳入函数内声明
'相关调用:hy_CountInStr计算字符出现的个数
'函数参考:咱家是猫
'创建日期;2008-03-19
'===============================================================================
On Error Resume Next
ShiftID = ShiftID + 1 '时间变换一次则ShiftID自动加1
If ShiftID > hy_CountInStr(strSplitText, strDelimiter) Then '如果ShiftID大于分割符的个数则重置为0
ShiftID = 0
End If
If TypeOf ctl Is Label Then '根据不同的控件类型不文本赋给控件或其标题
ctl.Caption = Split(strSplitText, strDelimiter, -1)(ShiftID)
ElseIf TypeOf ctl Is TextBox Then
ctl = Split(strSplitText, strDelimiter, -1)(ShiftID)
End If
End Function
猫的这个函数使用比较灵活,可以把表的记录读出来,然后赋给strSplitText变量。
另外这个函数中引用了另外一个函数。
Function hy_CountInStr(strAllString As String, strSpeString As String) As String
'===============================================================================
'功能描述:计算字符串中指定字符的个数
'参数说明:strAllString整个字符串;strSpeString需要搜索的字符串,可以为单字符,也可以为多字符
'返回参数:hy_EffectShiftText Me.Text100, "先显示我", "再显示你","接着再显示我"
'使用范例:hy_CountInStr("普通图书;社科图书;教辅图书;文学图书;古籍图书;儿童图书","图书")
'函数参考:http://www.huzf.com/article.asp?id=138
'创建日期;2008-03-20
'===============================================================================
Dim i As Integer, j As Integer
For i = 1 To Len(strAllString)
If Mid(strAllString, i, Len(strSpeString)) = strSpeString Then
j = j + 1
End If
Next i
hy_CountInStr = j
End Function
[ 本帖最后由 hunrybecky 于 2008-3-20 14:49 编辑 ] |
|