TStrings是一个虚类
请用TStringList代替Var
  IntI:Integer;
  StrList:Tstrings;
begin
  If Dlg_Open.Execute Then
  begin
    Try
      StrList:=TStringList.Create;
      StrList:=Dlg_Open.Files
    Finally
      StrList.Free;
    end;
  end;

解决方案 »

  1.   

    Var
      IntI:Integer;
      StrList:Tstrings;
    begin
      If Dlg_Open.Execute Then
      begin
        StrList:=TStringList.Create;   //<-----应该是TStringlist 哦
        Try
          StrList:=Dlg_Open.Files
        Except    end;
       StrList.Free;
      end;
      

  2.   

    TStrings是一个抽象类,不能独立的创建,而只有依赖一个对象来完成创建。如TMemo,TListBox的Lines,Items属性就是一个TStrings的实例.
    TStringList则一个从TStrings下来的一个非抽象类,可以进行单独的创建。
    以上两位的作法是要一个父类,然后调用其子类的构造函数来对父类进行子类化,这样当然就可以了!也可以直接这样:
    Var
      IntI:Integer;
      StrList:TstringList;
    begin
      If Dlg_Open.Execute Then
      begin
        StrList:=TStringList.Create; 
        Try
          StrList:=Dlg_Open.Files
        Except    end;
       StrList.Free;
      end;
      

  3.   


    StrList:=TString.Create;
    换成
    StrList:=TStringList.Create;
    还是错,Why????
      

  4.   

    定义:
    StrList: TStringList;
      

  5.   

    Var
      IntI:Integer;
      StrList:Tstrings;
    begin
      If Dlg_Open.Execute Then
      begin
        Try
          StrList:=TStringList.Create;
          StrList:=Dlg_Open.Files //你已经把Dlg_Open.Files的地址赋值给StrList
        Finally
          StrList.Free; //这样你就把Dlg_Open.Files给Free了
        end;
      end;StrList:=Dlg_Open.Files //问题就是这句!你还没有理解对象指针的概念StrList.Assign(Dlg_Open.Files);
    //or
    StrList.Text := Dlg_Open.Files.Text;
    //请调试如下代码
    var
      vForm: TForm;
    begin
      vForm := Form1;
      vForm.Caption := '这不就清楚了!';
    end;
      

  6.   

    //这样你应该更深刻的认识什么是对象指针
      with TForm.Create(nil) do try
        Caption := '没有变量,切可以访问资源。';
        ShowModal;
      finally
        Free;
      end;
      

  7.   

    感谢:zswang(伴水)(流浪在北京)