第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写的记事本中的“查找”看不明白?
在论坛上找了好多页,也没有人提出 这样的问题,希望懂的给详细解释一下,好吗? 期待中………… 百度了一圈,还是😊不懂,盼盼盼…… 期待^ω^期待…… 我也看不懂,因为我没有学!呵呵 还没学到那里! break跳出以后有按空格,他会抹掉第一次的查询内容,并且换行。再次查询的时候,那么第一行就没有了,加入第二行有所查询的内容,它会执行for语句第一行。他先加上第一行的字节数,第二行的意思是一个空格占两个字节。第三行的意思是所查找的内容在第二行的第几个字节处。那么它这一行前面的字计数就要减去1. 为什么每次查找只能查找第一个,而不能查找之后的所有相同字符。完整的代码是什么样的。
页:
[1]