在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近在使用RAD XE7时,在WIN10上开发一个类似记事本的工具,使用的是TRichEdit控件,在实现自动换行功能时,发现设置WordWrap后无法自动换行,经过检查发现和滚动条ScrollBars属性有关系,只要设置水平滚动条( RichEdit1.ScrollBars := TScrollStyle.ssBoth; 或 RichEdit1.ScrollBars := TScrollStyle.ssHorizontal;)均会导致WordWrap失效。
印象中在XP和WIN7上并没有碰到该问题,而查看了VCL实现方法应该和以前Delphi7差别不大,推测可能和WIN10后的TRichEdit控件有关系,毕竟该控件依赖于系统的RICHEDIT控件。
解决方法有如下2种,推荐第二种: 方法一(重载TRichEdit): type 上面这种方法是在CreateParams中自动去掉 ES_AUTOHSCROLL 和 WS_HSCROLL 属性,相当于在设置WordWrap=True时,去掉水平滚动条。 不过这种方法需要将重载的控件动态创建或安装到IDE使用,相对麻烦, 所以推荐用下面的方法,在Form中多几行代码即可(会影响程序的运行效率,但微乎其微,关系不大) 方法二: procedure TForm1.ChangeWordWrap(); begin RichEdit1.WordWrap := not RichEdit1.WordWrap; if RichEdit1.WordWrap then RichEdit1.ScrollBars := TScrollStyle.ssVertical else RichEdit1.ScrollBars := TScrollStyle.ssBoth; end;
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论