你那样做,和定义成TStrings是一样的。

解决方案 »

  1.   

    不能两次创建对象啊。
    sTmp:='My Temp String';
    if sList<>nil then
      sList:=TStringList.Create;
      sList.AddObject('TempStr',TObject(sTmp));
      

  2.   

    TObject到string转换有错,先将TObject转成pchar后在转成string:
    V:=string(pchar(sList.Objects[0]));
    另外,OnShow事件中的代码是不安全的,最好写在OnCreate中
      

  3.   

    newwen(玩一会儿) 
    为什么第一次执行时正确,而第二次执行时会出错呢?
      

  4.   

    你第一次创建的sList没有释放,所以第二次创建就会出现问题
      

  5.   

    将:
    var V:variant;
    begin
      V:=string(sList.Objects[0]);
    0A  showmessage(sTmp);
    end;

    V:=string(sList.Objects[0]);
    0A改为:
    V:=String(PChar(sList.Objects[0]));
    或者:
    V := sList.Strings[0];
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  6.   

    lws0472
    我是说按钮事件中的代码出错,没有说初始化代码出错
      

  7.   

    lxpbuaa(桂枝香在故国晚秋) 
    你为什么要先转换成PChar类型,然后再转换成string类型?
      

  8.   

    sList没有释放,应该在最后加上slist.free。