课件制作 发表于 2015-6-18 20:12:35

第028讲用memo写的记事本中的“查找”看不明白?

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);
    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;
      Memo1.SelLength:= Length(FindDialog1.FindText);
      Break;
    end;
end;
end;



第028讲用memo写的记事本中的“查找”看不明白?
在论坛上找了好多页,也没有人提出 这样的问题,希望懂的给详细解释一下,好吗?

课件制作 发表于 2015-6-18 21:04:05

期待中…………

aishenwang 发表于 2015-6-19 10:50:21

课件制作 发表于 2015-6-19 16:22:04

百度了一圈,还是&#128522;不懂,盼盼盼……

课件制作 发表于 2015-6-20 21:25:38

期待^ω^期待……

858418616 发表于 2015-6-23 10:50:26

我也看不懂,因为我没有学!呵呵

wanggeba 发表于 2015-8-13 08:45:03

还没学到那里!

A87454A 发表于 2016-7-14 20:44:58

break跳出以后有按空格,他会抹掉第一次的查询内容,并且换行。再次查询的时候,那么第一行就没有了,加入第二行有所查询的内容,它会执行for语句第一行。他先加上第一行的字节数,第二行的意思是一个空格占两个字节。第三行的意思是所查找的内容在第二行的第几个字节处。那么它这一行前面的字计数就要减去1.

xieyuan0553 发表于 2017-1-16 09:05:48

为什么每次查找只能查找第一个,而不能查找之后的所有相同字符。完整的代码是什么样的。
页: [1]
查看完整版本: 第028讲用memo写的记事本中的“查找”看不明白?