Код:
	procedure TForm1.AddToMemoCb(AFileName:String; ASize:Integer);
var obj : TFileItemData;
begin
listbox1.Items.Add(Format('File: %s; Size: %d',[AFileName,ASize]));
      obj := TFileItemData.Create;
      obj.AFileName := AFileName;
      obj.ASize := ASize;
      ListBox2.Items.AddObject(obj.toString,obj);
end; 
 
если 
	Код:
	obj := ListBox1.Items.Objects[ListBox1.ItemIndex] As TFileItemData;
      ShowMessage(obj.toString); 
 
БУДЕТ ошибка
 
а
в listbox2 = все хорошо! 
 
	Код:
	obj := ListBox2.Items.Objects[ListBox2.ItemIndex] As TFileItemData;
      ShowMessage(obj.toString); 
 
Значит 
 
  - не могу сообразить, почему так
понял:
 а) listbox1.Items.Add(Format = это listbox.
 b) ListBox2.Items.AddObject( = это obj
верно?!