 
			
				16.10.2023, 00:52
			
			
			
		  
	 | 
	
		
		
		
			
			| 
			
				
				
				 Модератор 
				
				
			 | 
			  | 
			
				
				
					Регистрация: 17.04.2008 
					
					
					Сообщения: 8,111
 
				Версия Delphi: 7, XE3, 10.2 
					Репутация: 49089 
					    
				 
				
			 | 
		 
		 
		
	 | 
	
	
	
		
			
			
				 
				
			 
			 
			
		
		
		
		Да, забыл, приведение типов надо (as TFileItemData). 
А вообще-то все работает. Т.е. ты в своем коде что-то делаешь не так:
 
	Код: 
	unit Unit1;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
type
  TFileItemData = class
    FileName : String;
    Atrib : String;
    Size : Integer;
    id : Integer;
    rews:Integer;
    function toString : String;
  end;
function TFileItemData.toString : String;
begin
  Result := Format('id: %d; File: %s; Size: %d; Reviews: %d; Attribute: %s',[id,FileName,Size,rews,Atrib]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  I : Integer;
  obj : TFileItemData;
begin
  for I := 1 to 5 do
    begin
      obj := TFileItemData.Create;
      obj.FileName := Format('filename-%d',[i]);
      obj.Atrib := 'R';
      obj.Size := Random(1000000);
      obj.id := i;
      obj.rews := i;
      ListBox1.Items.AddObject(obj.toString,obj)
    end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
  I : Integer;
  obj : TFileItemData;
begin
  for I := 0 to ListBox1.Items.Count-1 do
    begin
      obj := ListBox1.Items.Objects[i] As TFileItemData;
      obj.Free;
    end;
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  obj : TFileItemData;
begin
  if ListBox1.ItemIndex > -1 then
    begin
      obj := ListBox1.Items.Objects[ListBox1.ItemIndex] As TFileItemData;
      ShowMessage(obj.toString);
    end;
end;
end. 
  
		
	
		
		
		
		
		
	
		
			
			
			
			
				 
			
			
			
			
		 
		
	
	
	 |