mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 06:59:42 +02:00
57 lines
976 B
ObjectPascal
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.
|