2017-05-25 10:31:24 +02:00
|
|
|
unit InMemoryDataU;
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
|
|
|
System.Generics.Collections,
|
|
|
|
BusinessObjectsU;
|
|
|
|
|
|
|
|
function GetPeopleList: TObjectList<TPerson>;
|
2017-12-12 18:32:41 +01:00
|
|
|
function GetPeopleSmallList: TObjectList<TPerson>;
|
2019-10-10 20:16:20 +02:00
|
|
|
function GetInterfacedPeopleList: TList<IPerson>;
|
2017-05-25 10:31:24 +02:00
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
uses
|
|
|
|
System.SysUtils;
|
|
|
|
|
|
|
|
var
|
2017-12-12 18:32:41 +01:00
|
|
|
GPeople, GPeopleSmall: TObjectList<TPerson>;
|
2017-05-25 10:31:24 +02:00
|
|
|
|
2019-10-10 20:16:20 +02:00
|
|
|
function GetInterfacedPeopleList: TList<IPerson>;
|
|
|
|
var
|
|
|
|
lPerson: IPerson;
|
|
|
|
begin
|
|
|
|
Result := TList<IPerson>.Create;
|
|
|
|
lPerson := TInterfacedPerson.Create;
|
|
|
|
lPerson.Name := 'Daniele Teti';
|
|
|
|
lPerson.Age := 40;
|
|
|
|
lPerson.DOB := EncodeDate(1979, 11, 4);
|
|
|
|
Result.Add(lPerson);
|
|
|
|
lPerson := TInterfacedPerson.Create;
|
|
|
|
lPerson.Name := 'Peter Parker';
|
|
|
|
lPerson.Age := 35;
|
|
|
|
lPerson.DOB := EncodeDate(1984, 11, 4);
|
|
|
|
Result.Add(lPerson);
|
|
|
|
end;
|
|
|
|
|
2017-05-25 10:31:24 +02:00
|
|
|
procedure PopulateList;
|
|
|
|
var
|
|
|
|
p: TPerson;
|
|
|
|
I: Integer;
|
|
|
|
begin
|
|
|
|
GPeople := TObjectList<TPerson>.Create(True);
|
|
|
|
for I := 1 to 1000 do
|
|
|
|
begin
|
|
|
|
p := TPerson.Create;
|
|
|
|
p.FirstName := 'Daniele';
|
|
|
|
p.LastName := 'Teti';
|
|
|
|
p.DOB := EncodeDate(1979, 11, 4);
|
|
|
|
p.Married := True;
|
|
|
|
GPeople.Add(p);
|
|
|
|
|
|
|
|
p := TPerson.Create;
|
|
|
|
p.FirstName := 'John';
|
|
|
|
p.LastName := 'Doe';
|
|
|
|
p.DOB := EncodeDate(1879, 10, 2);
|
|
|
|
p.Married := False;
|
|
|
|
GPeople.Add(p);
|
|
|
|
|
|
|
|
p := TPerson.Create;
|
|
|
|
p.FirstName := 'Jane';
|
|
|
|
p.LastName := 'Doe';
|
|
|
|
p.DOB := EncodeDate(1883, 1, 5);
|
|
|
|
p.Married := True;
|
|
|
|
GPeople.Add(p);
|
|
|
|
end;
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
function GetPeopleList: TObjectList<TPerson>;
|
|
|
|
begin
|
|
|
|
Result := GPeople;
|
|
|
|
end;
|
|
|
|
|
2017-12-12 18:32:41 +01:00
|
|
|
procedure PopulateSmallList;
|
|
|
|
var
|
|
|
|
p: TPerson;
|
|
|
|
begin
|
|
|
|
GPeopleSmall := TObjectList<TPerson>.Create(True);
|
|
|
|
p := TPerson.Create;
|
|
|
|
p.FirstName := 'Daniele';
|
|
|
|
p.LastName := 'Teti';
|
|
|
|
p.DOB := EncodeDate(1979, 11, 4);
|
|
|
|
p.Married := True;
|
|
|
|
GPeopleSmall.Add(p);
|
|
|
|
|
|
|
|
p := TPerson.Create;
|
|
|
|
p.FirstName := 'John';
|
|
|
|
p.LastName := 'Doe';
|
|
|
|
p.DOB := EncodeDate(1879, 10, 2);
|
|
|
|
p.Married := False;
|
|
|
|
GPeopleSmall.Add(p);
|
|
|
|
|
|
|
|
p := TPerson.Create;
|
|
|
|
p.FirstName := 'Jane';
|
|
|
|
p.LastName := 'Doe';
|
|
|
|
p.DOB := EncodeDate(1883, 1, 5);
|
|
|
|
p.Married := True;
|
|
|
|
GPeopleSmall.Add(p);
|
|
|
|
end;
|
|
|
|
|
|
|
|
function GetPeopleSmallList: TObjectList<TPerson>;
|
|
|
|
begin
|
|
|
|
Result := GPeopleSmall;
|
|
|
|
end;
|
|
|
|
|
2017-05-25 10:31:24 +02:00
|
|
|
initialization
|
|
|
|
|
|
|
|
PopulateList;
|
2017-12-12 18:32:41 +01:00
|
|
|
PopulateSmallList;
|
2017-05-25 10:31:24 +02:00
|
|
|
|
|
|
|
finalization
|
|
|
|
|
|
|
|
GPeople.Free;
|
2017-12-12 18:32:41 +01:00
|
|
|
GPeopleSmall.Free;
|
2017-05-25 10:31:24 +02:00
|
|
|
|
|
|
|
end.
|