一个delphi的关于记事本查找的程序
我想用delphi编写一个程序,实现:输入文字后点查找,便可以将与输入文字有关的行都在memo里列出来,当然查找的内容是在记事本里。希望有高手可以告诉我这部分代码,我是一...
我想用delphi编写一个程序,实现:输入文字后点查找,便可以将与输入文字有关的行都在memo里列出来,当然查找的内容是在记事本里。希望有高手可以告诉我这部分代码,我是一个小小菜鸟。
展开
1个回答
展开全部
不知道楼主是不是想做一个记事本程序.
若用查找控件的话,使用下面的代码即可实现:
with RichEdit1 do
begin
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
for i := 0 to RichEdit1.Lines.Count - 1 do
if pos(FindDialog1.FindText,Richedit1.Lines[i]) <> 0 then
Memo1.Lines.Add('在第 '+IntToStr(i + 1) + ' 行找到'+FindDialog1.FindText);
end
else
showmessage('找不到�'+#39+Finddialog1.FindText+#39);
end;
如果不用FindDialog控件的话,直接在button按钮下完成:
procedure TForm1.Button2Click(Sender: TObject);
var
i : integer;
begin
for i := 0 to RichEdit1.Lines.Count -1 do
begin
if pos(trim(Edit1.Text),RichEdit1.Lines[i]) <> 0 then
Memo1.Lines.Add('�材 '+IntToStr(i + 1) + ' 《т�'+FindDialog1.FindText);
end;
end;
若用查找控件的话,使用下面的代码即可实现:
with RichEdit1 do
begin
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
for i := 0 to RichEdit1.Lines.Count - 1 do
if pos(FindDialog1.FindText,Richedit1.Lines[i]) <> 0 then
Memo1.Lines.Add('在第 '+IntToStr(i + 1) + ' 行找到'+FindDialog1.FindText);
end
else
showmessage('找不到�'+#39+Finddialog1.FindText+#39);
end;
如果不用FindDialog控件的话,直接在button按钮下完成:
procedure TForm1.Button2Click(Sender: TObject);
var
i : integer;
begin
for i := 0 to RichEdit1.Lines.Count -1 do
begin
if pos(trim(Edit1.Text),RichEdit1.Lines[i]) <> 0 then
Memo1.Lines.Add('�材 '+IntToStr(i + 1) + ' 《т�'+FindDialog1.FindText);
end;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询