blob: c30528b622d5625204017cd7b200a827b47d6d45 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
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.
|