关于RichEdit版本问题(30分)

  • 主题发起人 主题发起人 kim_fu
  • 开始时间 开始时间
K

kim_fu

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个程序使用RICHEDIT做为文本录入。需要统计录入文本的行数。<br>我在2000下编译的程序。我设置好RichEdit的宽度是一行15个字(汉字)。<br>在2000下没问题。可是到了98下就发现一行不是15个字,可能是14个或14个半(汉字)的<br>宽度。<br>我把2000下的RichEdit的动态连接库都考到98下,覆盖原来的也不行。<br>我该怎么做才能让 RichEdit 在98和在2000下显示的一行的字数一样呢?<br>没分了。只有30了。急啊。帮帮忙
 
为什么不统计字数?
 
统计字数?怎么统计?
 
你统计行数的目的是不是要得到录入的字数?<br>如果如此不如直接统计字数,要统计汉字字数还是asc码数?
 
我统计行数是要得到页数。不要字数。<br>如果每行字数不能固定下来的话,在98看是3页。在2000下看可能就是2页。那就不准确了。<br>我不管怎么样。只要能让98和2000下每行都一样长就行了。
 
RICHEDIT.width := strlen('阿阿阿阿阿阿阿阿阿阿阿阿阿阿阿')
 
to yzqangel:<br>RICHEDIT.width := strlen('阿阿阿阿阿阿阿阿阿阿阿阿阿阿阿')<br>你这样设置和我指定 Richedit.Width := 100 这样有什么不同吗?<br>
 
en ? 又没有人回答了.唉!!!
 
to yzqangel :<br><br>strlen 是返回字符串中字符的个数。你把个数给 RichEdit.Width 好象不对吧。
 
有没有人知道怎么解决啊?
 
观察一下用了什么dll,全拷过去。<br>发个给我看看好吗?<br>我是win2k<br><br>Nizvoo@etang.com
 
输入的字体字号是否一样?(具体是多少)如果是确定的,可按每行字数设定RICHEDIT.width
 
输入字体的字号不一样也无所谓。<br>比如在2000下。RichEdit.width=340 正好是20个字。<br>其他的都不变。在98下就变成19个字了。
 
所以系统应根据运行环境而动态改变RichEdit.width,使其总是显示20字
 
那应该怎么改呢?
 
我在98下测试,没你说的问题,每行显示字数一致,<br>可能的问题是98是否加补丁,RichEd20.dll是否更新,用RxRiChEdit(Rxlib)代替试试,<br>RichEdit发现不少问题,但在后者却无问题。
 
我估计问题就出在RichEdit的动态连接库上。<br>有的机器上装了WPS有的机器上装了OFFICE。他们都更新那个动态连接库。<br><br>好象就是WPS装完就有问题。 你说用RxRichEdit。那么他本身不调用Richedit那几个<br>DLL吗?谢谢你。我先试试
 
WPS以前用过,现在没用过<br><br>可能会,我不清楚,祝好运~~~
 
如果你程序启动的时候可以允许测试,哈哈,那么:<br>&nbsp; RichEdit1.Lines.Clear;<br>&nbsp; RichEdit1.WordWrap := true;<br>&nbsp; RichEdit1.Lines.Add(StringOfChar('中', 60));<br>&nbsp; RichEdit1.Width := 500;<br>&nbsp; repeat<br>&nbsp; &nbsp; RichEdit1.Width := RichEdit1.Width - 1;<br>&nbsp; &nbsp; RichEdit1.Refresh;<br>&nbsp; until Length(RichEdit1.Lines[0]) &lt;= 40;<br>肯定能够使得动态满足你的要求。<br><br>或者,你把这个用于测试的RichEdit放到一个Panel下面,显示不出来就可以了。
 
后退
顶部