testcont.pp 976 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. program testcont;
  2. {$mode objfpc}
  3. uses contnrs;
  4. Type
  5. TTestObject = Class(TObject)
  6. FID : Integer;
  7. Fmsg : String;
  8. Constructor Create (ID : INteger; Msg : String);
  9. Procedure Print;
  10. end;
  11. Constructor TTestObject.Create (ID : INteger; Msg : String);
  12. begin
  13. FID:=ID;
  14. FMsg:=Msg;
  15. end;
  16. procedure TTestObject.Print;
  17. begin
  18. Writeln(FID,' (',FMsg,')');
  19. end;
  20. Var
  21. S : TOrderedList;
  22. O : TTEstObject;
  23. I : Integer;
  24. begin
  25. // S:=TObjectStack.Create;
  26. S:=TObjectQueue.Create;
  27. For I:=1 to 10 do
  28. S.Push(TTestObject.Create(I,''));
  29. Writeln('Popping list');
  30. Repeat
  31. O:=TTestObject(S.Pop);
  32. If O<>Nil then
  33. begin
  34. Write('Popped : ');
  35. O.Print;
  36. Write (S.Count,' elements left. ');
  37. O:=TTestObject(S.Peek);
  38. If (O<>NIl) then
  39. begin
  40. Write('Next element is : ');
  41. O.Print;
  42. end
  43. else
  44. Writeln;
  45. end;
  46. Until (O=Nil);
  47. Writeln('Popped stack');
  48. end.