fpc/fcl/tests/testcont.pp
2002-08-16 11:10:16 +00:00

57 lines
976 B
ObjectPascal

program testcont;
{$mode objfpc}
uses contnrs;
Type
TTestObject = Class(TObject)
FID : Integer;
Fmsg : String;
Constructor Create (ID : INteger; Msg : String);
Procedure Print;
end;
Constructor TTestObject.Create (ID : INteger; Msg : String);
begin
FID:=ID;
FMsg:=Msg;
end;
procedure TTestObject.Print;
begin
Writeln(FID,' (',FMsg,')');
end;
Var
S : TOrderedList;
O : TTEstObject;
I : Integer;
begin
// S:=TObjectStack.Create;
S:=TObjectQueue.Create;
For I:=1 to 10 do
S.Push(TTestObject.Create(I,''));
Writeln('Popping list');
Repeat
O:=TTestObject(S.Pop);
If O<>Nil then
begin
Write('Popped : ');
O.Print;
Write (S.Count,' elements left. ');
O:=TTestObject(S.Peek);
If (O<>NIl) then
begin
Write('Next element is : ');
O.Print;
end
else
Writeln;
end;
Until (O=Nil);
Writeln('Popped stack');
end.