![]() |
Exit wird nicht ausgeführt ?!?
Hi,
ich hab ein Problem. Ich experimentiere gerade ein wenig mit Andorra rum und aus irgend einem Grund funktioniert eine Prozedur nicht so wie ich will:
Delphi-Quellcode:
selbst wenn ich nur die erste Bedingung überprüfe, funktioniert es einfach nicht. Beim debuggen steht, dass die Bedingung
if (Not TBaseObject(Sprite).Active) or (Not TBaseObject(Sprite).Solid) then
Exit; , also "Not Active", True ist. Aber trotzdem führt der danach exit nicht aus. Beim starten des Programmes ist übrigens auch nicht dieser rote Punkt, an dem man einen debugpunkt setzten könnte, vorhanden. Woran könnte das liegen/was mach ich falsch :/ |
Re: Exit wird nicht ausgeführt ?!?
Hast du vielleicht die falsche Datei geöffnet? Manchmal kommt es vor, dass in einem anderen Ordner, der im Bibliotheks- bzw Suchpfad steht, eine gleichnamige, veraltete Datei liegt, die vom Compiler anstelle der richtigen eingebunden wird. Als erstes also mal danach Ausschau halten, dann zur Sicherheit alle .dcu-Dateien löschen und das Projekt neu erzeugen.
|
Re: Exit wird nicht ausgeführt ?!?
Hab ich schon versucht, daran liegts nicht :/
|
Re: Exit wird nicht ausgeführt ?!?
Werden denn die Bedingungen auch erfüllt? wird ein ShowMessage angezeigt?
|
Re: Exit wird nicht ausgeführt ?!?
Zitat:
|
Re: Exit wird nicht ausgeführt ?!?
Dann ersetze doch mal das Exit durch ein ShowMessage, dann weißt du, ob er überhaupt in den Block reingeht.
Ist da noch ein try-finally-Block drumherum? |
Re: Exit wird nicht ausgeführt ?!?
Mit
Zitat:
Nope, die ganze Prozedur hab ich oben gepostet, mehr steht nicht drinn |
Re: Exit wird nicht ausgeführt ?!?
Wenn das die ganze Prozedur ist, dann ist er doch so wie so am Ende der Prozedur.
Delphi-Quellcode:
procedure Foo;
begin if (Not TBaseObject(Sprite).Active) or (Not TBaseObject(Sprite).Solid) then Exit; end; |
Re: Exit wird nicht ausgeführt ?!?
was nichts daran ändert dass die exit Zeile nicht aufgerufen wird, was z.B. beim verärben der Prozedur via inherited wichtig wäre. Dazu kommt dass wenn ich was dadrunter schreibe das exit einfach übersprungen wird (was theoretisch das Gleiche wie mit dem inherited ergeben müsste)
|
Re: Exit wird nicht ausgeführt ?!?
Zitat:
Wenn nach dem Exit sowieso nichts mehr kommt, dann wird dieser "unnütze" Befehl durch die Codeoptimierung entfernt. Wenn du nach dem Exit noch dein Inherited hinschreibst, dann kommt ja noch Code danach und dann würde es nicht wegoptimiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 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