关于在text中顺序显示字符的问题!
关于在text中顺序显示字符的问题!
现在已经知道有一个字符串(汉字),比如是:a= “我是你的朋友。他也是你的朋友!”
这个字符串已经存在了,可是我想把他这样显示:
先显示“我是你的朋友。”在我点击后再显示下半句成为:“我是你的朋友。他也是你的朋友!”
这个句子的格式不固定,并且有时候还很长,有很多句组成,
应该如何实现点一下出一句这样的效果啊?
另外,还有个小问题:text的enabled属性为false时为什么text的颜色属性无效啊?
谢谢!!!
问题点数:20、回复次数:10Top
1 楼babyt(阿泰)回复于 2004-12-01 00:32:48 得分 0
1:enable为false的时候其他所有的属性都失效了,这是正常的
2:如果确定是以句号断句
可以这样
Dim arr() as string
arr=Split(a,"。")
然后按一下回车,显示一个数组元素或者是组合即可.
Top
2 楼lxcc()回复于 2004-12-01 00:40:24 得分 0
Text1.Text=Text1.Text+"增加或者变化的字符串"Top
3 楼hylaeion(☆霖湘凝☆)回复于 2004-12-01 00:41:47 得分 0
1.那要是不想让别人修改text中的值,但又要显示颜色应该怎么办?
2.不一定用句号断句啊,只要是和句号在句子中作用一样的标点如,“!”、“?”等,都要断句的,这样的话还有其他办法吗?谢谢!Top
4 楼homezj(小吉)回复于 2004-12-01 02:08:15 得分 5
标点符号就那么多,我想不会超过20个吧,把所有你认为可用于断句的符号都检测一下就行了。方法很多,用Instr就不错。写个函数给你:
Function FindBreak(start as long ,word As string) as Long
dim i as long,s As string
s=",;”。!~……)?" '自己随便加上你想检测的断句符
for i=1 to len(s)
FindBreak=instr(start,word,mid(s,i,1))
if FindBreak>0 then exit function
next
end FunctionTop
5 楼of123()回复于 2004-12-01 08:26:15 得分 5
1
将 TextBox 放在一个 Enabled = false,BorderStyle = 0 的 Frame 中。
2
strWords = "我是你的朋友。他也是你的朋友!"
Private Sub Text1_Click()
Dim p As Integer, n As Integer
p = InStr(Len(Text1) + 1, strWords, "。")
n = InStr(Len(Text1) + 1, strWords, "!")
If p > n Then p = n
n = InStr(Len(Text1) + 1, strWords, "?")
If p > n Then p = n
n = InStr(Len(Text1) + 1, strWords, "……")
If p > n Then p = n + 1
'......
Text1 = left(strWords, p)
End Sub
Top
6 楼wumylove1234(毁于随)回复于 2004-12-01 09:00:51 得分 0
1.那要是不想让别人修改text中的值,但又要显示颜色应该怎么办?
2.不一定用句号断句啊,只要是和句号在句子中作用一样的标点如,“!”、“?”等,都要断句的,这样的话还有其他办法吗?谢谢!
不让修改,直接设置Text的Locked=true
标点的只能挨个判断了.Top
7 楼aiur2000(破愿立志别故里,荆棘南下思北风)回复于 2004-12-01 15:12:11 得分 5
1.Locked=true
2.
dim a(10) as string
dim i as integer
sub form_load()
i=0
a(0)="我是你的朋友。"
a(1)="他也是你的朋友!"
...
end sub
sub command1_click()
text1.text=text1.text & a(i)
i=i+1
end subTop
8 楼happy_sea(开心海(数据读取中,请稍候......))回复于 2004-12-01 15:35:38 得分 5
1、不修改内容又要显示颜色,请将Text换成Label;
2、具体实现如下:
一个Text1用于存放原始字符串,一个Label1用于显示,一个Command,代码如下:
Private Sub Command1_Click()
Static i As Integer
Do While i <= Len(Text1)
i = i + 1
If Mid(Text1, i, 1) = "," Or Mid(Text1, i, 1) = "。" Or _
Mid(Text1, i, 1) = "?" Or _
Mid(Text1, i, 1) = "!" Or _
Mid(Text1, i, 1) = ";" Then '此处假定以,。?!;进行分界
Label1.Caption = Left(Text1, i)
Exit Do
End If
Loop
End Sub
Top
9 楼hylaeion(☆霖湘凝☆)回复于 2004-12-01 21:01:29 得分 0
谢谢大家给了这么多的方法~Top
10 楼libralibra(食食物者为俊杰: U don't try, U don't know)回复于 2004-12-01 21:13:20 得分 0
1、不修改内容又要显示颜色,请将Text换成Label;
---------------严重同意这个观点,呵呵!Top




