我想为FindDialog的OnFind找文本,怎么写?
解决方案 »
- 散分--把工程字体的默认改为宋体
- 菜鸟请问D6中的ClientSocket的Open/Close问题,谢谢!!!
- 要把一个窗体的面板上分割成几个区域,有没有线来分割啊?我不用panel?
- 对文本操作时出现的怪问题!
- 做了一个半月的C#,和老板说了辞职,回来散分
- 在线急等,报表问题(RB),超高分求助!1000分!
- MDI子窗口怎么样使用bsNone风格
- 变量付值问题?insert into(字段名)?请问如何把字段名用参数代替???
- 因资金严重匮乏,想找点生意来做!
- delphi对access进行计算并自动排序的问题?
- 基类Form打包,加入工程中,如何继承包里的Form
- 一个窗体使用前一个窗体中某个组件的属性,怎样做?
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundPos, InitPos: Integer;
begin
InitPos := Memo1.SelStart + Memo1.SelLength;
FoundPos := Pos (FindDialog1.FindText,
Copy (Memo1.Text, InitPos + 1,
Length (Memo1.Text) - InitPos));
if FoundPos > 0 then
begin Memo1.SetFocus;
Memo1.SelStart := InitPos + FoundPos - 1;
Memo1.SelLength := Length(FindDialog1.FindText);
end
else
begin
MessageDlg ('没找到。', mtInformation, [mbOK], 0);
end;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
var Found,StartPos,ToEnd:integer;
Options:TSearchTypes;
begin
if frMatchCase in FindDialog1.Options then
Options:=[stMatchCase];
if frWholeWord in FindDialog1.Options then
Options:=Options+[stWholeWord];
with RichEdit1 do
begin
StartPos:=SelStart+SelLength;
ToEnd:=Length(Text)-StartPos;
Found:=FindText(FindDialog1.FindText,StartPos,ToEnd,Options);
if (Found<>-1) then
begin
SetFocus;
SelStart:=Found;
SelLength:=Length(FindDialog1.FindText);
end
else
SelStart:=Length(Text);
PerForm(EM_SCROLLCARET,0,0);
end;
end;