用pos
var
 s:string;
begin
 s:=memo.text;
 while pos('a',s)>0 do
  begin
  i:=i+1;
  end;
 showmessage('a有'+i);
end;

解决方案 »

  1.   

    function CharTimes(ch:Char;ss:String):Integer;
    var ii: Integer;
    begin
      Result := 0;
      for ii := 1 to Length(ss) do
        if ch = ss[ii] then
          Result := Result + 1;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      vSubStr: string;
      S: string;
      I: Integer;
    begin
      vSubStr := 'A'; //可以是“AB”
      S := Memo1.Text;
      I := (Length(S) - Length(StringReplace(S, vSubStr, '', [rfReplaceAll]))) div //忽略大小写加上rfIgnoreCase
        Length(vSubStr);
      Caption := IntToStr(I);
    end;
      

  3.   

    楼上都说了,zswang(伴水)(* 嘻嘻 *)的方法比较新颖
      

  4.   

    希望你搜索的只是一个字符
    若是字符串的话就要麻烦了
    stringreplace对字符串的搜索是只看第一个字符的!!