laiwenyou 发表于 2013-7-31 14:59:41

delphi计事本查打的小小疑问 里内的一个循环可以去掉。。

procedure TForm1.FindDialog1Find(Sender: TObject);
var
i, j, PosReturn, SkipChars: Integer;
begin
For i:= 0 to Memo1.Lines.Count do
begin
    PosReturn:= Pos(FindDialog1.FindText, Memo1.Lines);   PosReturn计算出来后可以再减一

    If PosReturn <> 0 then
    begin
      Skipchars:= 0;
      For j:= 0 to i-1 do
      Skipchars:= Skipchars + Length(Memo1.Lines);    画横线的可去掉
      SkipChars:= SkipChars + (i*2);
      SkipChars:= SkipChars + PosReturn - 1;

      Memo1.SetFocus;
      Memo1.SelStart:= SkipChars;       这里SkipChars换成PosReturn
      Memo1.SelLength:= Length(FindDialog1.FindText);
      Break;
    end;
end;
end;

laiwenyou 发表于 2013-7-31 15:00:33

一样可以查找到呀。。。。,这个会不会有什么不良后果呢?

mdmouse 发表于 2015-12-25 23:21:46

楼主你怎么解决的啊
页: [1]
查看完整版本: delphi计事本查打的小小疑问 里内的一个循环可以去掉。。