Ich denke eher, dass pop durchaus ausgeführt wird. Funktioniert denn nach dem Klicken von Button2 noch Button3, wenn du nur einen Waggon hinzugefügt hattest?
Das reine Entfernen aus deinem Stack führt aber nicht dazu, dass du auch etwas siehst. Denn was du in deinem Fenster siehst ist nur die Listbox, und die änderst du ja nicht beim Entfernen.
Du musst also beim Ändern des Stack auch deine Listbox ändern. Beim Hinzufügen fügst du den Eintrag auch in die Listbox hinzu. Was musst du also beim Entfernen machen? Den ersten Eintrag auch aus der Listbox löschen würde ich vorschlagen.
(Wobei du vorher prüfen solltest, ob der Stack leer ist.)
Dann noch eine Bemerkung am Rande:
In der vorgegebenen
Unit mStack heißt der Stack TStack. Das T ist dabei ein Kennzeichen dafür, dass es sich um eine Klasse handelt. Dann kann man besser erkennen, dass es die Klasse ist (der Bauplan für einen Waggon) und kein konkret erzeugtes Objekt (das einen existierenden Waggon repräsentiert). Deshalb solltest du auch deine Klasse Waggon besser TWaggon nennen.