Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Goto Sprungmaken .... bekomms net hin :/ (https://www.delphipraxis.net/1684-goto-sprungmaken-bekomms-net-hin.html)

AZRAEL 18. Dez 2002 02:34


Goto Sprungmaken .... bekomms net hin :/
 
Hi leute ich versuch hier nen Sprungpunkt zu setzen und bekomms absolut net hin:

Habe hier ein Programm mit 2 verschiedenen procedure(n) ... und will nach beenden der beiden gerade einen Goto prgstart; ausführen ... diesen hab ich direkt vor end. gesetzt d.h. außerhalb beider prozeduren. das label prgstart; steht auch außerhalb beider prozeduren direkt unter implementation .... wenn ich dass programm jezz starten will bekomm ich nur den fehler: Declaration expected but 'GOTO' found.

dieser markiert die Zeile wo dass Goto drinnen steht und der cursor ist direkt hinter GOTO


Hoffe ihr könnt mir helfen
Azrael

Luckie 18. Dez 2002 03:23

Ausführbarer Code ist nur innerhalb von Prozeduren, Funktionen und im Hauptprogramm erlaubt.

Wenn du aus der Prozedur raus willst, nimm exit.

jbg 18. Dez 2002 06:15

Das GoTo gehört zum Spaghetti-Code und wird nur von VB Programmierern benutzt. Das Pascal dieses trotzdem Unterstützt ist eigentlich schon hirnrissig.

Luckie 18. Dez 2002 06:51

Wieso VB? VB ist genauso ereignisorientiert wie Delphi. Du meinst wohl Basic und diverse Derivate.

Noch zur Lösung:

Delphi-Quellcode:
procedure Wrapper;
begin
  DeineProzedur1
  DeineProzedur2;
  Mach das was beim Goto-Label passieren soll; {Anweisung, Prozedur, Funktion}
  Anweisung1;
  Anweisung2;
end;

MrSpock 18. Dez 2002 06:52

Hallo jbg,

ich kann mich an diese Diskussion um Spaghetti Code noch gut aus meiner Studienzeit erinnern. Letztlich würde ich nicht soweit gehen, Goto komplett zu verteufeln. Ich denke, dass Object Pascal insbesonder auch mit den try ... except bzw. try ... finally Konstruktionen gute zusätzliche Struturierungsmöglichkeiten anbietet, aber ein klitzekleines :mrgreen: GOTO macht ja aus einem Programm noch kein Nudelgericht.

Luckie 18. Dez 2002 07:01

Aber sobald Sprung und Ziel nicht mehr auf einer Buildschirmseite sind oder gar verschachtelt sind.

Ich habe jetzt Code gesehen, da hat jemand mit Goto eine Schleife gebaut. Ich habe bestimmt eine Minute auf den Code gekuckt, bis ich kapiert haben, was da passiert. (Hinzukam es war schrecklich formatiert). Wer interesse hat: Poret-Scanner (ziemlichweit unten, zweite oder dritte Postzing über meiner Version, da veröffentlicht er den Code).

sakura 18. Dez 2002 09:11

Zitat:

Zitat von jbg
Das GoTo gehört zum Spaghetti-Code

Richtig.
Zitat:

Zitat von jbg
Das Pascal dieses trotzdem Unterstützt ist eigentlich schon hirnrissig.

:shock: Falsch. Es gibt Situationen, in welchen goto durchaus seine Berechtigung hat. Viele Programmiersprachen bieten if...then, repeat...until und while...do Konstrukte an, welche die meisten goto Anweisungen überflüssig machen. Ich muss zugeben, eine goto kommt bei mir vielleicht nur einmal in ca. 50.000 Zeilen Code vor, aber es hat dann seine Berechtigung (vorw. Geschwindigkeit in "Bottlenecks").

In Assembler könnte man ohne die ganzen goto Pendandts (jmp, jnz, jz, ...) gar nicht arbeiten ;)

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz