见鬼!在MDI中用TRichEdit.FindText出现问题???

oldhawk 2001-04-19 09:28:00
如下代码在单文档窗体中测试无问题,找到关键字匹配后选中该段文字。但在MDI中,找到匹配文字后,却不能显示选种状态(蓝底白字),但其实是选种了,只是由于MDI FORM为非ACTIVE状态,所以未显示出来,如用鼠标在其窗体上点一下,旧能看到蓝底白字的选中字段。我试了SetFocus,但不行。请高手指点。这不会是Delphi锝bug吧?那就太惨了。

with RichEdit1 do
begin
if SelLength <> 0
then StartPos := StartPos + SelLength
else StartPos := SelStart;

ToEnd := Length(Text) - StartPos;

FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd,[stMatchCase]) ;

if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);

end else ShowMessage('不能找到"'+FindDialog1.FindText +'".');
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WuHeHai 2001-04-19
  • 打赏
  • 举报
回复
我觉ActiveMDIChild

with TMDIForm(MainForm.ActiveMDIChild).RichEdit1 do
//----------------------------------->>子窗体类型转换
begin
if SelLength <> 0
then StartPos := StartPos + SelLength
else StartPos := SelStart;

ToEnd := Length(Text) - StartPos;

FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd,[stMatchCase]) ;

if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);

end else ShowMessage('不能找到"'+FindDialog1.FindText +'".');
end;
WuHeHai 2001-04-19
  • 打赏
  • 举报
回复
对!就是老兄oldhawk上次的帖子。
呜呜...
为什么没有报酬???
WuHeHai 2001-04-19
  • 打赏
  • 举报
回复
wokao!这代码怎么这么熟啊?我好像写过,让我查查!
rh 2001-04-19
  • 打赏
  • 举报
回复
Memo1.HideSelection:=False;//设置Memo1的HideSelection为假,可以在对象浏览器里直接设置

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧