我在delphi表单上有一个包含finddialog框的丰富编辑。用户输入要找到的单词,程序正确地突出显示“找到的”单词 - 这很好用。然而,我想要的是程序滚动,以便找到的单词的第一个出现在richedit框的第一行。如果用户然后单击“下一步”(查找对话框),则滚动继续,以便下一次出现的单词出现在第一行,依此类推。任何人都可以帮助我吗?
master
答案 0 :(得分:4)
您可以使用以下代码滚动到TRichEdit控件中的光标位置:
RichEdit1.SelStart := PreviousFoundPos - 1;
RichEdit1.SelLength := Length(FindDialog1.FindText);
RichEdit1.SetFocus;
// Now scroll to the current cursor position
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
这将Windows消息EM_SCROLLCARET
发送到控件,使控件滚动到当前光标位置。