AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Exit wird nicht ausgeführt ?!?

Ein Thema von Dearmon · begonnen am 21. Mai 2010 · letzter Beitrag vom 22. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
Dearmon

Registriert seit: 23. Nov 2008
16 Beiträge
 
#1

Exit wird nicht ausgeführt ?!?

  Alt 21. Mai 2010, 23:45
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:
    if (Not TBaseObject(Sprite).Active) or (Not TBaseObject(Sprite).Solid) then
      Exit;
selbst wenn ich nur die erste Bedingung überprüfe, funktioniert es einfach nicht. Beim debuggen steht, dass die Bedingung
, 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 :/
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Exit wird nicht ausgeführt ?!?

  Alt 21. Mai 2010, 23:57
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.
  Mit Zitat antworten Zitat
Dearmon

Registriert seit: 23. Nov 2008
16 Beiträge
 
#3

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:02
Hab ich schon versucht, daran liegts nicht :/
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:13
Werden denn die Bedingungen auch erfüllt? wird ein ShowMessage angezeigt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dearmon

Registriert seit: 23. Nov 2008
16 Beiträge
 
#5

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:20
Zitat:
Beim debuggen steht, dass die Bedingung
, also "Not Active", True ist
und ja, alles wird ausgeführt, nur das Exit halt nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:21
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dearmon

Registriert seit: 23. Nov 2008
16 Beiträge
 
#7

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:26
Mit
Zitat:
alles wird ausgeführt
war sowas wie Showmessage, Beep etc gemeint.
Nope, die ganze Prozedur hab ich oben gepostet, mehr steht nicht drinn
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:31
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;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dearmon

Registriert seit: 23. Nov 2008
16 Beiträge
 
#9

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:38
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)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#10

Re: Exit wird nicht ausgeführt ?!?

  Alt 22. Mai 2010, 00:46
Zitat von Dearmon:
was nichts daran ändert dass die exit Zeile nicht aufgerufen wird,
Doch, genau daran ändert das was.

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz