1。有一字符串T,如何判断memo中含有它?
2。如何在memo中寻找所有的T,先找到第一个并且焦点放在那儿,按下一个,焦点放在第二个上面,周而复始

解决方案 »

  1.   

    1,
    if pos(T,memo.text)>0 then
      showmessage('含有该字符串');
    2
    i:integer
    s:string;
    s:=memo.text;
    i:=0;
    while not i<0 do
    begin
      s:=copy(s,i,length(s))
      i:=pos(T,s);
    end;
      

  2.   

    定义全局变量leng:integer;
    这里的字符串t假设为lzx//查找第一个
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j,len:integer;
    begin
      i:=length(form1.Memo1.Text);
      if i>0 then
      begin
        len:=pos('lzx',form1.Memo1.Text);
        if len>0 then
        begin
          form1.Memo1.SelStart:=len-1;
          form1.Memo1.SelLength:=length('lzx');
          form1.Memo1.SetFocus;
          leng:=len+length('lzx');
        end;
      end;
    end;
    //查找下一个
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i,j,len:integer;
      s:string;
    begin
      if leng<=length(form1.Memo1.Text) then
      begin
        i:=length(form1.Memo1.Text);
        form1.Memo1.SelStart:=leng-1;
        form1.Memo1.SelLength:=i-leng+1;
        s:=form1.Memo1.SelText;
        showmessage(s);
        len:=pos('lzx',s);
        showmessage(inttostr(len));
        if len>0 then
        begin
          form1.Memo1.SelStart:=len+leng-2;
          form1.Memo1.SelLength:=length('lzx');
          form1.Memo1.SetFocus;
          leng:=len+leng+length('lzx');
        end;
      end;
    end;
      

  3.   

    你试试
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i,j,len:integer;
      s:string;
    begin
      if leng<=length(form1.Memo1.Text) then
      begin
        i:=length(form1.Memo1.Text);
        form1.Memo1.SelStart:=leng-1;
        form1.Memo1.SelLength:=i-leng+1;
        s:=form1.Memo1.SelText;
        len:=pos('lzx',s);
        if len>0 then
        begin
          form1.Memo1.SelStart:=len+leng-2;
          form1.Memo1.SelLength:=length('lzx');
          form1.Memo1.SetFocus;
          leng:=len+leng+length('lzx');
        end
        else
          showmessage('已到末尾');
      end;
    end;