Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Mit GoTo außerhalb einer Prozedur arbeiten und zurückkehren?


teamrocket0 - Mi 17.10.18 22:27
Titel: Mit GoTo außerhalb einer Prozedur arbeiten und zurückkehren?
Guten Abend Entwickler-Ecke-Spezies.

Ganz kurz zur Sache. Ich weiß, das man den "GoTo" Befehl nicht benutzen soll. Für mein Unterfangen wäre es aber ganz nützlich.
Ich kann ein Label nur innerhalb einer abgeschlossenen Prozedur deklarieren, vergeben und benutzen. Mit dem GoTo-Befehl. Das ist aber an und für sich total unnütz.

Ich möchte mit einem Label eine Prozedur verlassen um am Ende das interessanten Programmcode den langweiligen, uninteressanten zu verstecken.
Ich habe einen Aufruf:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  if FileExists(ExtractFilePath(ParamStr(0)) + SaveFilePath + 'Genre.txt')=false  then
  begin
    case Form1.Radiogroup1.ItemIndex of       //Genre Startwerte schreiben
    1:Begin
      GoTo CreatListBoxMusik;
      end;
    2:Begin
      GoTo CreatListBoxGames;
      end;
    end;
end;


Diese CreatListBox-Prozeduren sollen nur eine menge Zeug in eine Listbox schreiben. Nur für den Just-In-Case-Fall das die entsprechende Textdatei nicht mehr vorhanden sein sollte.

Und da das eine Menge Zeilen sind, die meinen ach so ordentliche Programmcode unnötig auseinanderreißen würden, möchte ich der Ordnung halber den ganzen Mist ans Ende haben. Das ist mein Vorhaben. Nun die wichtige Frage.

Wie stelle ich es an, eine Prozedur zu verlassen, an eine andere Stelle meines Programmcodes zu springen (in meinem Fall ans Ende) und dann wieder in meine Unterbrochene Prozedur zurückzukehren!?

Danke, falls jemand einen Vorschlag hat. :)

mit besten Grüßen

teamroket0


Mathematiker - Mi 17.10.18 22:51

Hallo,
Das einfachste wird wohl sein, dass du CreatListBoxMusik und CreatListBoxGames selbst zu Prozeduren machst. Die rufst du einfach über ihren Namen auf.

LG Steffen


Delete - Mi 17.10.18 23:07

- Nachträglich durch die Entwickler-Ecke gelöscht -


teamrocket0 - Mi 17.10.18 23:51

OK, danke schon mal.

Dieses TThread ist ein guter Anfang, aber kann es sein, das die Threads wieder VOR ihrem eigentlichem Aufruf deklariert werden müssen? Gewissermaßen so wie bei einer selbstdefinierten Prozedur?

Ich hätte den ganzen Müll gerne am Ende meines Programmcodes. Sind nunmehr 400 Zeilen die alle das selbe machen. Das hätte ich schon gerne am Ende. Wobei es für den späteren Programmablauf ja keinen Unterschied macht ob das oben oder unten im Code steht. Aber für die Ordnung wäre es im Moment schöner.

Gibt's da noch was anderes cooles?


galagher - Do 18.10.18 10:29

Was hindert dich, den Vorschlag von user profile iconMathematiker umzusetzen? Die beiden Prozeduren CreatListBoxMusik und CreatListBoxGames kannst du dann ja am Ende deines Quellcodes unterbringen!


jaenicke - Fr 19.10.18 08:08

Und mit dem mittlerweile kostenlosen MMX Code Explorer [https://www.mmx-delphi.de/] in Verbindung mit der aktuellen kostenlosen Delphi Community Edition [https://www.embarcadero.com/de/products/delphi/starter] kannst du das Auslagern in eine eigene Prozedur auch bequem per Refactoring machen lassen. Außerdem ist mit MMX durch die bessere Codenavigation die Reihenfolge der Prozeduren usw. vollkommen unwichtig.