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
|
{ %OPT=-gl -gh }
{$mode objfpc}{$H+}
uses Classes, SysUtils, FGL;
type
TMessages = specialize TFPGList<string>;
var
Messages: TMessages;
procedure WritelnMessages(const S: string);
var
I: Integer;
begin
Writeln('Messages ', S, ' : ', Messages.Count);
for i := 0 to Messages.Count - 1 do
Writeln(' Messages[', I, ']: ', PtrUInt(Pointer(Messages[I])), ' ', Length(Messages[I]), ' ', Messages[I]);
end;
procedure Show(S: string);
var
NewS: string;
begin
WritelnMessages('before Add');
NewS := Copy(S, 1, 10) + Copy(S, 11, MaxInt);
Messages.Add(NewS);
WritelnMessages('after Add');
end;
begin
Messages := TMessages.Create;
Show('Loaded level "Castle Hall"');
Show('You pick "Sword"');
Show('You''re using weapon "Sword" now');
Show('Hint: press "Escape" for game menu');
Messages.Delete(0);
Show('You pick "Potion Of Life"');
FreeAndNil(Messages);
end.
|