Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups de.comp.lang.* Forum > Newsgroup de.comp.lang.delphi.misc
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroup de.comp.lang.delphi.misc Borlands Delphi, Anwendung + Programmierung.

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11-02-2009, 04:37 PM
Rene Kadner
 
Beiträge: n/a
Standard Aufzählung geht nicht

Hallo,

in Delphi 2009 habe ich folgendes Problem:

var i: integer;
....
if (i in [1..5]) then -> wird compiliert
if (i in [1000..5000]) then -> wird *nicht* compiliert: Fehler E1012
Konstantenausdruck verletzt untere Grenzen.


Dürfen in einer Aufzählung nur 'kleine' Zahlen stehen. Wenn ja, wo ist die
Grenze? In der Hilfe habe ich dazu nichts gefunden.
Was kann ich tun (außer einer doppelten </> Abfrage) ?

Gruß
René

Mit Zitat antworten
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Meinews.de
Standard Sponsored Links

  #2  
Alt 11-02-2009, 05:13 PM
Heinz Zastrau
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

Hallo René,

> if (i in [1..5]) then -> wird compiliert
> if (i in [1000..5000]) then -> wird *nicht* compiliert: Fehler E1012
> Konstantenausdruck verletzt untere Grenzen.
>
>
> Dürfen in einer Aufzählung nur 'kleine' Zahlen stehen. Wenn ja, wo ist
> die Grenze? In der Hilfe habe ich dazu nichts gefunden.
> Was kann ich tun (außer einer doppelten </> Abfrage) ?


das Problem ist nicht die Aufzählung .. sondern die Menge.

Mit 1000..5000 definierst Du ein Aufzählung von 1000..5000. Durch die
eckigen Klammer drumherum baust du eine Menge die alle Werte der
Ausfzählung enthält. Leider kann eine Menge nur bis zu 512 Werte
enthalten. Deswegen erhälts Du die Fehlermeldung.

Alternativen:

if (1000 <= i) and (i <= 5000) then ...;

oder

case i of
1000..5000: ...;
end;

Ciao Heinz Z.
Mit Zitat antworten
  #3  
Alt 11-02-2009, 05:29 PM
Martin Behrens
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

Rene Kadner schrieb:

> in Delphi 2009 habe ich folgendes Problem:
>
> var i: integer;
> ...
> if (i in [1..5]) then -> wird compiliert
> if (i in [1000..5000]) then -> wird *nicht* compiliert: Fehler E1012
> Konstantenausdruck verletzt untere Grenzen.


Mengen dürfen nur maximal 256 Werte haben.


Martin
Mit Zitat antworten
  #4  
Alt 11-02-2009, 05:37 PM
Heinz Zastrau
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

Hallo Martin,

> Mengen dürfen nur maximal 256 Werte haben.


das ist Richtig. :-)

Ciao Heinz Z.
Mit Zitat antworten
  #5  
Alt 11-02-2009, 07:03 PM
Holger Lembke
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

"Heinz Zastrau" <heinz.zastrau*gmx.de> wrote:

>Hallo Martin,
>
>> Mengen dürfen nur maximal 256 Werte haben.

>
>das ist Richtig. :-)


<aufzeig und hüpf aufgeregt>

Und das mit dem IF war auch falsch!!!!elf

</aufzeig und hüpf aufgeregt>


--
mit freundlichen Grüßen! Password Must Be at Least 18770 Characters
Holgi, +49-531-3497854 ! Can't Repeat Any of Your Previous 30689 Passwords
Mit Zitat antworten
  #6  
Alt 11-03-2009, 08:49 AM
Rene Kadner
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

> [..] Leider kann eine Menge nur bis zu 512 Werte enthalten. Deswegen
> erhälts Du die Fehlermeldung.

Danke. Das hatte ich in der OH nicht gefunden.

> if (1000 <= i) and (i <= 5000) then ...;

die hier nicht ganz :-), aber vom Prinzip her klar.

> case i of
> 1000..5000: ...;
> end;

Das wäre nicht schlecht, würden nicht noch weitere Bedingungen in der IF
Anweisung stehen.

Das mit dem Menge oben wäre einleuchtend. Ein "in [1000, 5000]" führt aber
zur gleichen Fehlermeldung. Das könnte der Compiler ja "lässig" in ein OR
wandeln.
-> Durch Versuche habe ich nun herausbekommen, dass innerhalb der []
Klammern nur Zahlen bis 255 akzeptiert werden. Deine 512 oben sind also
leider auch schon zu viel.

Gruß
René

Mit Zitat antworten
  #7  
Alt 11-03-2009, 02:32 PM
Heinz Zastrau
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

Hallo Holger,

> <aufzeig und hüpf aufgeregt>
>
> Und das mit dem IF war auch falsch!!!!elf
>
> </aufzeig und hüpf aufgeregt>


und weil du so aufmerksam bist, darfst Du auch noch erklären was falsch
ist.

Ciao Heinz Z.
Mit Zitat antworten
  #8  
Alt 11-03-2009, 02:39 PM
Heinz Zastrau
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

Hallo René

>> if (1000 <= i) and (i <= 5000) then ...;

> die hier nicht ganz :-),


was fehlt DIr denn da noch?

>> case i of
>> 1000..5000: ...;
>> end;

> Das wäre nicht schlecht, würden nicht noch weitere Bedingungen in der IF
> Anweisung stehen.


Wieso lassen denn weitere Bedingungen diese Lösung schlect aussehen?

Ciao Heinz Z.
Mit Zitat antworten
  #9  
Alt 11-03-2009, 02:59 PM
Holger Lembke
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

"Heinz Zastrau" <heinz.zastrau*gmx.de> wrote:

>>> if (1000 <= i) and (i <= 5000) then ...;

>> die hier nicht ganz :-),

>
>was fehlt DIr denn da noch?


Ein >

--
mit freundlichen Grüßen! Password Must Be at Least 18770 Characters
Holgi, +49-531-3497854 ! Can't Repeat Any of Your Previous 30689 Passwords
Mit Zitat antworten
  #10  
Alt 11-03-2009, 03:04 PM
Carsten Thumulla
 
Beiträge: n/a
Standard Re: Aufzählung geht nicht

Rene Kadner wrote:

> Deine 512 oben sind also leider auch schon zu viel.


Zu Mengen gibt es eine Compileroption, diese hochzusetzen.


Carsten
Mit Zitat antworten
 
Antwort


Themen-Optionen
Ansicht

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 anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Aufzählung Eberhard Siebel Newsgroup de.comp.office-pakete.staroffice.writer 5 09-07-2009 03:44 PM
erste RDP-Anmeldug geht noch, die zweite geht nicht mehr (Windows 2008) Carsten L. Newsgroup microsoft.public.de.german.windows.server.general 1 08-14-2008 02:53 PM
Es geht nicht um Tatsachen, ging es noch nie bei IHNEN - es geht nurum Absprachen und schon ist der Deal perfekt. tobias.metzler@gmx.de Newsgroup de.soc.weltanschauung.scientology 0 12-10-2007 12:16 AM
TB und Junk - geht, geht nicht... Werner Flamme Newsgroup de.comm.software.mozilla.mailnews 0 11-26-2007 05:40 PM
Was geht, was geht nicht beim Gestalten von Schaltflächen? Andreas Borutta Newsgroup de.comp.office-pakete.staroffice.writer 110 01-21-2004 08:00 PM


Alle Zeitangaben in WEZ. Es ist jetzt 01:01 PM Uhr.





Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Forum SEO by Zoints