1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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.
|