testol.pp 989 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. program testol;
  2. {$mode objfpc}
  3. uses sysutils,contnrs;
  4. Type
  5. TTestObject = Class(TObject)
  6. FID : Integer;
  7. Fmsg : String;
  8. Constructor Create (ID : INteger; Msg : String);
  9. Destructor Destroy; override;
  10. Procedure Print;
  11. end;
  12. Constructor TTestObject.Create (ID : INteger; Msg : String);
  13. begin
  14. FID:=ID;
  15. FMsg:=Msg;
  16. end;
  17. procedure TTestObject.Print;
  18. begin
  19. Writeln(FID,' (',FMsg,')');
  20. end;
  21. Destructor TTEstObject.Destroy;
  22. begin
  23. Write('Destroying : ');
  24. Print;
  25. end;
  26. Const
  27. NO = 10;
  28. Var
  29. S : TObjectList;
  30. I : Integer;
  31. begin
  32. S:=TobjectList.Create;
  33. For I:=1 to NO do
  34. S.add(TTestObject.Create(I,'Item '+intToStr(i)));
  35. Writeln('Counting objects:');
  36. For I:=0 to S.Count-1 do
  37. (S[i] as TTestObject).Print;
  38. Writeln('Shifting..');
  39. For I:=1 to 5 do
  40. S.Move(9,0);
  41. Writeln('Counting objects:');
  42. For I:=0 to S.Count-1 do
  43. (S[i] as TTestObject).Print;
  44. Writeln('Deleting objects:');
  45. For I:=S.Count-1 downto 0 do
  46. S.Delete(I);
  47. end.