Großer Gott, in diesen Fahrstuhl kriegen mich keine zehn Pferde
Ich gehe wieder an den Anfang zurück und unterstelle dir, nicht wirklich zu wissen, was du konkret eigentlich machen möchtest. Ein Computer arbeitet Dinge strikt nacheinander ab. Du kannst eine laufende Methode nicht von woanders unterbrechen:
Delphi-Quellcode:
meinFahrstuhl.öffneTüren();
warteMillisekunden(2000);
meinFahrstuhl.notAus();
Das öffnet erst die Türen und wartet anschließend nachdem das Öffnen abgeschlossen ist. Möchtest du Dinge asynchron (quasi "im Hintergrund") ausführen (das Öffnen), brauchst du Threads. Und davon würde ich fürs Erste abraten. Weder könntest du ohne eine laufende Methode "von außen" beeinflussen, noch in der Methode mitbekommen, was sich außen ändert - Da sich in der Zeit außen schlichtweg nichts ändert.
Hast du eine nahende Deadline? Ich würde mir erst einmal fest machen, was das Ding eigentlich konkret können soll, und WIE es das können soll. Beispielsweise einen hoch- und herunterfahrenden Aufzug zeichnen (ebenso wie öffnende und schließende Türen) - Auf Knopfdruck kann der Benutzer dann das Öffnen und Schließen veranlassen und bsp. einen laufenden Öffne/Schließevorgang abbrechen.
Zu Goto ist in den letzten Jahrzehnten eigentlich alles gesagt worden. Vergiss, dass es diesen Befehl gibt.