Abstract error
constructor TSystemConfig.Create;
var
  reg : TRegistry;
  I : Integer;
  st: Tstrings;
begin
  reg := TRegistry.Create;  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('hardware\devicemap\serialcomm', False);    st := TStrings.Create;
    try
      reg.GetValueNames(st);
    finally
      st.Free;
    end;    reg.CloseKey;
  finally
    reg.Free;
  end;
end;
把st := TStrings.Create;
    try
      reg.GetValueNames(st);
    finally
      st.Free;
    end;
部分注释掉就好了
请问高手什么问题

解决方案 »

  1.   

    把st   :=   TStringList.Create;
            try
                reg.GetValueNames(st);
            finally
                st.Free;
            end; 
      

  2.   

    TStrings类是不能直接被实例化的~~
    要想用基于此类的实例,必须从TStringList类继承,楼上正解~~
      

  3.   

    谢谢budded
    能说一下为什么吗?
      

  4.   

    应该这么用~var
      st:TStrings;
    begin
      st:=TStringList.Create;//向下转型
      try
        {Code}
      finally
        st.free;
      end;
    end;TStrings本身是抽象类,不能实例化