Könnt ihr die Mängel bitte etwas genauer erläutern?
Wie oben bereits beschrieben wurde: Das Programm funktioniert.
Objekte kann man nicht einfach benutzen, ohne eine Instanz davon zu erstellen, da sonst kein Speicher für die Felder allokiert wurde. Entweder knallt es direkt (wie es hier eigentlich sollte) oder du schreibst wild auf irgendnem Speicher rum - entweder merkst du es nicht, oder du bekommst irgendwann später die Quittung, wie scheinbar in deinem Fall, beim Beenden - ich würde das nicht "funktionieren" nennen
P.S. Du bist uns immer noch die benutzte Delphi Version schuldig - eventuell können wir uns dann das von unseren Erwartungen abweichende Verhalten erklären.