var Stack1, Stack2: TStack; List1:TList; begin Stack1:= TStack.Create; Stack1.Push(1); Stack1.Push(2); Writeln(Stack1.Pop); // 2 Writeln(Stack1.Pop); // 1 Stack1.free; // TStack can be initialized using a class derivative from TEnumerable, like TList List1 := TList.Create; List1.Add(3); Stack2:= TStack.Create(List1); Writeln(Stack2.Pop); // 3 List1.free; Stack2.free; // Inline TStack can be created in routine scope // only for version after 10.3 Tokyo var Stack3:= TStack.Create; Stack3.free; end;