mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 08:49:26 +02:00
60 lines
989 B
ObjectPascal
60 lines
989 B
ObjectPascal
program testol;
|
|
|
|
{$mode objfpc}
|
|
|
|
uses sysutils,contnrs;
|
|
|
|
Type
|
|
TTestObject = Class(TObject)
|
|
FID : Integer;
|
|
Fmsg : String;
|
|
Constructor Create (ID : INteger; Msg : String);
|
|
Destructor Destroy; override;
|
|
Procedure Print;
|
|
end;
|
|
|
|
Constructor TTestObject.Create (ID : INteger; Msg : String);
|
|
|
|
begin
|
|
FID:=ID;
|
|
FMsg:=Msg;
|
|
end;
|
|
|
|
procedure TTestObject.Print;
|
|
|
|
begin
|
|
Writeln(FID,' (',FMsg,')');
|
|
end;
|
|
|
|
Destructor TTEstObject.Destroy;
|
|
|
|
begin
|
|
Write('Destroying : ');
|
|
Print;
|
|
end;
|
|
|
|
Const
|
|
NO = 10;
|
|
|
|
Var
|
|
S : TObjectList;
|
|
I : Integer;
|
|
|
|
begin
|
|
S:=TobjectList.Create;
|
|
For I:=1 to NO do
|
|
S.add(TTestObject.Create(I,'Item '+intToStr(i)));
|
|
Writeln('Counting objects:');
|
|
For I:=0 to S.Count-1 do
|
|
(S[i] as TTestObject).Print;
|
|
Writeln('Shifting..');
|
|
For I:=1 to 5 do
|
|
S.Move(9,0);
|
|
Writeln('Counting objects:');
|
|
For I:=0 to S.Count-1 do
|
|
(S[i] as TTestObject).Print;
|
|
Writeln('Deleting objects:');
|
|
For I:=S.Count-1 downto 0 do
|
|
S.Delete(I);
|
|
end.
|