Entwickler-Ecke
Sonstiges (Delphi) - Fehlermeldung Konstantenausdruck erforderlich
mi-frank - Di 28.02.06 23:56
Titel: Fehlermeldung Konstantenausdruck erforderlich
Hi,
habe folgenden Quellcode
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var DS:Integer;
procedure Test(Mode:integer); begin case Mode of 1: DS:=1; 2: DS:=DS-1; 3: DS:=Ds+1; 4: DS:=frmAzubiBeurteilungsbogen.TableBogen.recordcount; end; end; |
bekomme die Fehlermeldung "Konstantenausdruck erforderlich" und weiß einfach nicht, was ich falsch gemacht habe?
Ich hoffe, einer von euch kann mir weiterhelfen!
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
Narses - Mi 01.03.06 00:19
Moin!
mi-frank hat folgendes geschrieben: |
bekomme die Fehlermeldung "Konstantenausdruck erforderlich" und weiß einfach nicht, was ich falsch gemacht habe? |
Wenn du jetzt noch dazu gesagt hättest, bei welcher Zeile der Fehler auftritt, könnten wir dir vielleicht sogar wirklich helfen; aber gut, dass du uns das raten läßt, sonst haben wir ja gar keinen Spaß dabei... :wink:
cu
Narses
PS: Wenn du die Delphi-Tags für deinen Code verwendest, wird dieser auch besser dargestellt und läßt sich leichter lesen.
Delete - Mi 01.03.06 00:28
Mode darf keine Variable sein, da der Compiler die Sprungadressen der Case-Anweisung beim Kompilieren errechnet. Entweder überlegst du dir was anderes oder zu löst das mit if und else.
Narses - Mi 01.03.06 00:42
Moin!
Luckie hat folgendes geschrieben: |
Mode darf keine Variable sein, da der Compiler die Sprungadressen der Case-Anweisung beim Kompilieren errechnet. Entweder überlegst du dir was anderes oder zu löst das mit if und else. |
Ähm, also das glaube ich nicht; ich habe das mal gerade getestet, klar darf der case-Ausdruck eine Variable sein. Das ist IMHO was anderes, was bei ihm den Fehler wirft. :wink:
cu
Narses
Delete - Mi 01.03.06 00:51
Hm, stimmt das geht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function foobar(Mode: Integer): String; begin case Mode of 0: ; 1: ; 2: ; end; end;
procedure TForm1.Button1Click(Sender: TObject); begin foobar(2); end; |
Dann habe ich das jetzt mit irgendetwas anderem Verwechselt. :gruebel:
Ich glaube, ich habe das mit den Sprungzielen verwechselt, das dürfen keine Variablen sein. ;)
JayEff - Mi 01.03.06 02:07
Genau, Luckie. Das hat mich auch schon geärgert ^^
Ich wollte die Wahrscheinlichkeit eines Zufallsevents variabel machen:
Delphi-Quelltext
1: 2: 3: 4:
| case random(1000) of 1..50:tudies; 51..52+wasweisich:tudas; end; |
Aber das klappt nicht. Hier wird genau die Fehlermeldung gebracht, die mi-frank erhalten hat.
Blöderweise sollten wir tatsächlich wissen, in welcher Zeile das kommt. ausserdem solltest du [*delphi] [/delphi] tags verwenden, um den Code den du postest etwas schöner aussehen zu lassen :/ (ohne den * natürlich)
edit: [ot] sicher dass das nicht "fubar" für "fu**ed up beyond all recognition" heist?
BenBE - Mi 01.03.06 02:34
Ich hab zwei Ideen, woran es liegen könnte:
1. Mode ist vom Compiler in irgendeine Weise vorbelegt was zu Problemen in der Handhabung führt (denk ich mal weniger)
2. Durch die Zuweisungsoperationen wird der Compiler durch die Zuweisungen irritiert. Versuch mal, ob es so hier besser funzt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| var DS: Integer;
procedure Test(Mode: integer); begin case Mode of 1: Begin DS:=1; end; 2: Begin Dec(DS); end; 3: Begin Inc(DS); end; 4: Begin DS := frmAzubiBeurteilungsbogen.TableBogen.recordcount; end; end; end; |
Ansonsten bitte wirklich noch einmal die genaue Fehlerzeile mitteilen.
Weiterhin (heut erst wieder gehabt*) ein wenig größeren Source-Abshnitt senden. Rein syntaktisch sehe ich hier keinen Fehler.
* Beim Source eines Kumpels gab's den Fehler "String nicht kompatibel mit Procedure, Untyped Pointer, ..." (markiert wurde das End einer Schleife) ... Ursache war ein +-Zeichen anstatt eines ; zehn Zeilen oberhalb ... Guck also auch mal speziell nach solchen Fehlern.
mi-frank - Mi 01.03.06 12:03
Hi,
die letzte Antwort war die richtige!
Hab mal wieder nicht an das Begin ... end; gedacht!
Nächstes mal werde ich probieren mich klarer auszudrücken, wo ich ein Problem habe!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!