так делал) в чем хорош или плохо?
type
PMyRec = class
I : integer;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
P : PMyRec;
begin
for var i := 0 to 99 do
begin
P := PMyRec.Create;
P.I := 42;
ListBox1.AddItem('One',Pointer(P));
end;
end;
да в целом без разницы. будет и так работать
Называть так переменные и типы плохо. ’’’Pascal type TMyRec = class I : integer; end; procedure TForm1.FormCreate(Sender: TObject); var MyRec : TMyRec; begin for var i := 0 to 99 do begin MyRec := TMyRec.Create; MyRec.I := 42; ListBox1.AddItem('One',Pointer(MyRec)); end; end; ’’’
это для примера, дабы не уходить от первого вопроса
Не про то... Вот когда TMyRec.... а должен быть TMyIntegerHolder
если не полениться написать классу конструктор, можно будет писать заполнение кратко и без лишней переменной: for var i := 0 to 99 do ListBox1.AddItem('One', TMyRec.Create(42));
А как потом эти объекты освобождать?
Идти по списку и освобождать
Можно и без конструктора: with ListBox1.Items.Objects[ListBox1.Items.AddObject('One', TMyRec.Create)] as TMyRec do I:=42;
Обсуждают сегодня