用 pos()函数。
他在Delphi中的具体说明如下:
Returns the index value of the first character in a specified substring that occurs in a given string.function Pos(Substr: string; S: string): Integer;下面是一个例子,再memo中查找制定的字符。unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,StrUtils;type
TForm1 = class(TForm)
Memo1: TMemo;
FindDialog1: TFindDialog;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
posreturn,skipchars:integer;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
temp:String;
nowpos:integer;
begin
nowpos:=length(memo1.Text);
temp:=RightStr(memo1.Text,nowpos - posreturn -length(finddialog1.FindText));
skipchars:=pos(finddialog1.FindText,temp);
if skipchars<>0 then
begin
posreturn:=skipchars+posreturn+length(finddialog1.FindText);
memo1.SetFocus;
memo1.SelStart:=posreturn;
memo1.SelLength:=length(finddialog1.FindText);
end else
begin
messagebox(handle,'find over','find',0);
posreturn:=0;
end;end;procedure TForm1.Button2Click(Sender: TObject);
begin
finddialog1.FindText:=Edit1.Text;
posreturn:=0;
end;end.虽然用了FindDialog,但你只需要改动一下就可以不用了。
他在Delphi中的具体说明如下:
Returns the index value of the first character in a specified substring that occurs in a given string.function Pos(Substr: string; S: string): Integer;下面是一个例子,再memo中查找制定的字符。unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,StrUtils;type
TForm1 = class(TForm)
Memo1: TMemo;
FindDialog1: TFindDialog;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
posreturn,skipchars:integer;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
temp:String;
nowpos:integer;
begin
nowpos:=length(memo1.Text);
temp:=RightStr(memo1.Text,nowpos - posreturn -length(finddialog1.FindText));
skipchars:=pos(finddialog1.FindText,temp);
if skipchars<>0 then
begin
posreturn:=skipchars+posreturn+length(finddialog1.FindText);
memo1.SetFocus;
memo1.SelStart:=posreturn;
memo1.SelLength:=length(finddialog1.FindText);
end else
begin
messagebox(handle,'find over','find',0);
posreturn:=0;
end;end;procedure TForm1.Button2Click(Sender: TObject);
begin
finddialog1.FindText:=Edit1.Text;
posreturn:=0;
end;end.虽然用了FindDialog,但你只需要改动一下就可以不用了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货