Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Case-Anweisung wird ignoriert (https://www.delphipraxis.net/113709-case-anweisung-wird-ignoriert.html)

ToFaceTeKilla 13. Mai 2008 12:41


Case-Anweisung wird ignoriert
 
Hallo zusammen!

Ich hab in meinem Programm folgende Case Anweisung:

Delphi-Quellcode:
case TypVergleich(aImpObj, aCurObj) of
         1: //Anweisung1
         2: //Anweisung2
         3: //Anweisung3
         end;
TypVergleich ist eine Funktion die aImpObj übergeben bekommt und neben dem Result noch aCurObj zurückliefern soll (ich brauche das aCurObj weil ich da noch drauf zugreifen will in den Anweisungen1,2,3).
Nun bin ich mir nicht sicher ob das überhaupt so funktionert (mit case eine funktion aufrufen und gleichzeitig aufs result zugreifen), deshalb hab ich das ganze wie folgt umgeschrieben:

Delphi-Quellcode:
TypVerglRes:= TypVergleich(aImpObj,aCurObj);
case TypVerglRes of
         1: //Anweisung1
         2: //Anweisung2
         3: //Anweisung3
         end;
TypVerglRes ist integer.

Bei beiden Varianten passiert allerdings nichts. Beim debuggen seh ich auch das auf TypVerglRes ein gültiger Wert steht, aber das CASE wird dann einfach übersprungen. Hab ich was falsch gemacht oder woran liegt das?

Danke schonmal im Voraus

DeddyH 13. Mai 2008 12:45

Re: Case-Anweisung wird ignoriert
 
Werden evtl. in den case-Labels nur Werte zugewiesen und anschließend nicht mehr benutzt? Dann wird das nämlich ggf. vom Compiler wegoptimiert.

ToFaceTeKilla 13. Mai 2008 12:50

Re: Case-Anweisung wird ignoriert
 
Ah alles klar, das war mein Fehler.
Ich hatte die Anweisungen noch nicht vollständig geschrieben, weil ich erstmal testen wollte ob die Fkt. usw. alles funktioniert und deshalb nur ne Zuweisung drin.
Hatte mich schon gewundert warum bei "1: " der Haltepunkt ungültig wird :wall:

Danke dir :thumb:

ToFaceTeKilla 13. Mai 2008 12:53

Re: Case-Anweisung wird ignoriert
 
Achso noch was: die Funktion mit
Delphi-Quellcode:
Case TypVergleich of
aufrufen, bringt nichts oder? Also da wird nicht automatisch auf Result zugegriffen, wenn ich das richtige interpretiere, dass da der Debugger drüberspringt?!

EDIT: OK war Rotz, jetzt hält er ordnungsgemäß am Haltepunkt an...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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