#1 2026-02-01 20:26:40

dcoun
Member
From: Crete, Greece
Registered: 2020-02-18
Posts: 518

adding a Torm object in a ilist with loCreateUniqueIndex

In the following code:

type
  Tmyorm=class(Torm)
    private
      Fwasadded: boolean;
    published
      property wasadded:boolean read Fwasadded write Fwasadded;
  end;

procedure TForm3.Button1Click(Sender: TObject);
var lista:ilist<Tmyorm>; o:tmyorm; fin:tarray<tmyorm>; n:integer; b:boolean;
begin
lista:=collections.Newplainlist<Tmyorm>([loCreateUniqueIndex],nil,ptOrm);
for n:=0 to 4 do
  begin
    o:=tmyorm.Create;
    o.IDValue:=1;
    lista.add(o,@b);
    o.wasadded:=b;
    if not b then o.free;
  end;
fin:=lista.AsArray;
memo1.lines.add(dynarraysavejson(fin,typeinfo(tarray<tmyorm>)));
end;

I am getting:

[{"RowID":1,"wasadded":true},{"RowID":1,"wasadded":true},{"RowID":1,"wasadded":true},{"RowID":1,"wasadded":true},{"RowID":1,"wasadded":true}]

What am I doing wrong?

Offline

#2 2026-02-02 18:45:27

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 15,401
Website

Re: adding a Torm object in a ilist with loCreateUniqueIndex

Nothing seems wrong here.
You are adding items to the IList<>.

Offline

#3 2026-02-02 20:12:49

dcoun
Member
From: Crete, Greece
Registered: 2020-02-18
Posts: 518

Re: adding a Torm object in a ilist with loCreateUniqueIndex

Since I created the list with loCreateUniqueIndex and ptOrm, why Torm objects are added with the same IDvalue?

Offline

#4 Yesterday 07:57:20

dcoun
Member
From: Crete, Greece
Registered: 2020-02-18
Posts: 518

Re: adding a Torm object in a ilist with loCreateUniqueIndex

Should I check before adding? if so, what does the second parameter in ilist<>.add?

Offline

Board footer

Powered by FluxBB