本帖最后由 jiangdong27 于 2010-04-13 17:44:03 编辑

解决方案 »

  1.   

    AddItem(Item: String; AObject: TObject); item 是你显示的TEXT  AObject是用户自定的对象    按照你写的       TObject(TempStr) 最后取出的结果是    ListView1.Items[0].Data 是  TObject(TempStr)
      

  2.   


    是Listbox,不是ListView,listbox怎么用?
      

  3.   

    试试 listBox1.Items.AddObject(Edit2.Text, listbox1);
      

  4.   


    不行,因为我要输入两个值,文件名和文件路径。Edit2是文件路径 TempStr:= Edit2.Text;listBox1.Items.AddObject(‘文件名’, TObject(TempStr));
      

  5.   


    var
      TempStr: string;
    begin
      TempStr:= Edit1.Text;
      Listbox1.AddItem('abc',TObject(TempStr));
      showmessage(string(ListBox1.Items.Objects[ListBox1.Items.IndexOf('abc')]));
    end;
      

  6.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      TempStr: string;
    begin
      TempStr:= Edit1.Text;
      Listbox1.AddItem('abc',TObject(TempStr));        // additem
      showmessage(string(ListBox1.Items.Objects[ListBox1.Items.IndexOf('abc')]));  // result: Edit1
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      TempStr: string;
    begin
      TempStr:= Edit1.Text;
      Listbox1.Items.AddObject('abc',TObject(TempStr));  // addobject
      showmessage(string(ListBox1.Items.Objects[0]));    // 这样取结果同上 result: Edit1
    end;
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      TempStr: string;begin
      TempStr:= Edit1.Text;
      Listbox1.Items.AddObject(TempStr,TObject(TempStr));  // addobject
      showmessage(string(ListBox1.Items.Objects[0]));    // 这样取结果同上 result: Edit1end;procedure TForm1.ListBox1Click(Sender: TObject);
    begin
    memo1.Lines.Add(string(ListBox1.Items.Objects[0]));
    end;前面对,为什么memo1.Lines.Add(string(ListBox1.Items.Objects[0]));这一句一执行,程序就debug错误呢?
      

  8.   

    procedure TForm1.ListBox1Click(Sender: TObject);
    begin
    memo1.Lines.Add(string(ListBox1.Items.Objects[0]));
    end;这儿有错误。
      

  9.   

    应该是乱码,不是空,你可以读下它的lengthlistbox1.items 是stringlistaddobject应该写成这样
    listbox1.items.addobject(Edit2.Text,TObject(PChar(TemStr))读的话应该是GetStr:=StrPas(Pchar(listbox1.Items.Objects[0]));
      

  10.   

    即使直接转成PChar也是不行的,因为这个字符串出了函数后,就被释放了,之后再取出来自然就变成乱码了。必须使用指针(PString)来记录这个字符串,然后把指针加到Object里面。
      

  11.   

    那就定义一个类吧
    type
      TFileInfo = class
      private
        FileName: string[20];
        FilePath: string[100];
      end;//添加
    var
      FileInfo: TFileInfo;
    begin
      FileInfo:= TFileInfo.Create;
      FileInfo.FileName:= '文件名';
      FileInfo.FilePath:= '文件路径';
      listBox1.Items.AddObject(FileInfo.FileName, FileInfo);
    end;//读取时转型一下
    var
      sName, sPath: string;
    begin
      sName:= TFileInfo(FlistBox1.Items.Objects[i]).FileName;  
      sPath:= TFileInfo(FlistBox1.Items.Objects[i]).FilePath;
    end;