Attualmente sto aggiungendo oggetto creandola piace:Posso aggiungere direttamente un record come oggetto nella lista di stringhe?
type
TRecord = class
private
str: string;
num: Integer;
public
constructor Create;
end;
...
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
rec: TRecord;
Alist: TStringList;
begin
Alist := TStringList.create;
Alist.Clear;
for i := 0 to 9 do
begin
rec := Trecord.Create; //create instance of class
rec.str := 'rec' + IntToStr(i);
rec.num := i * 2;
Alist.AddObject(IntToStr(i), rec);
end;
end;
È questo il metodo corretto o inefficienti? Oppure Posso aggiungere direttamente l'oggetto non creandolo come usando il record?
type
PRec = ^TRec;
TRec = record
str: string;
num: Integer;
end;
...
var
rec: TRec;
...
for i := 0 to 9 do
begin
//how to write here to have a new record,
//can i directly Create record in delphi 7 ?
rec.str := 'rec' + IntToStr(i);
rec.num := i*2;
Alist.AddObject(IntToStr(i), ???); // how to write here?
end;
O altro modo semplice e veloce?
Sto usando Delphi 7.
Grazie in anticipo.
Non sono sicuro che una lista di stringhe sia la migliore. Probabilmente andrei su TObjectList, impostare Ownsbjects su true e spostare la stringa nella classe utilizzata come voce di elenco. –
@DavidHefferman: Affinché funzioni correttamente, il tipo di record deve essere modificato in una classe derivata da 'TObject'. –
@Remy Il primo estratto del codice è esattamente quello –