在一个TStringList里装有动态生成的多张表名,内容的序号是不规则的,假定要根据用户输入的表名删除TStringList里对应的表,该怎样写?是不是:
   var
    str:TStrings;
begin
  str:=TStringList.create;
  if (str.Item('图书目录表')) then
   str.Item('图书目录表'').Delete 
end;   

解决方案 »

  1.   

     if   (str.Item('图书目录表'))   then 
    改为:
     if  str.IndexOf('图书目录表')>0 then 
        str.Delete(str.IndexOf('图书目录表')); 
      

  2.   

    var
     str:TStrings; 改为:
    var
     str:TStringList;
      

  3.   

    这样试试:   for i := 0 to str.Count-1 do
       begin
           if( str.Strings[i] ='用户输入的表名') then
           begin
             str.Delete(i);
           end;
       end;
      

  4.   

    var 
        str:TStrings; //这样是没错的,TStringList也一样
        i:Integer
    begin 
        str:=TStringList.create; 
        //这里给str赋值
        i:=str.IndexOf('图书目录表');
        if   i>=0   then 
          str.Delete(i); 
        str.Free; 
    end;