richedit的向上搜索(100分)

  • 主题发起人 主题发起人 pipi_lu
  • 开始时间 开始时间
P

pipi_lu

Unregistered / Unconfirmed
GUEST, unregistred user!
如何从当前光标位置向前搜索,finddialog的option属性中frdown怎么使用?
 
用 FindDialog 查找我没有用过,不过自己找我是做过:
其实很简单,把两个字符串统统反序,再找就可以了:)

function FindUp(RichEdit: TRichEdit; SubStr: string): Integer;
var
i, SrcLen, DstLen: Integer;
Txt: string;
begin
SrcLen := Length(RichEdit.Text);
Txt := RichEdit.Text;
DstLen := Length(SubStr);
for i := 1 to SrcLen do // 主串反序
Txt := Txt[SrcLen + 1 - i];
for i := 1 to DstLen do // 子串反序
SubStr := SubStr[DstLen + 1 - i];

Result := AnsiPos(SubStr, Txt);
end;

使用:
RichEdit1.SelStart := FindUp(RichEdit1, 'hello');
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);

 
RichEdit的findtext 不支持这一选项.
 
[8D]beta,你很聪明,我怎么没想到
 
如果是中文字符, Txt := Txt[SrcLen + 1 - i];将出错呀,怎么办?
 
后退
顶部