Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#22

AW: Eure Meinung: Syntaxerweiterung Set-Typen auf mehr als 255 Elemente

  Alt 22. Aug 2020, 11:28
Hallo Delphifreunde, vor einem ähnlichen Problem (bei Delphi 7) stehe ich seit längerem auch. Zwar mag es für Aufzählungstypen keine Anzahlsbegrenzung auf 256 zu geben, der "in"-Befehl scheitert aber ab dem 257. Element. Folgender Beispielcode mit einer Aufzählungsmenge mit 257 Elementen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

type TMenge = (
m0, m1, m2, m3, m4, m5, m6, m7, m8, m9,
m10, m11, m12, m13, m14, m15, m16, m17, m18, m19,
m20, m21, m22, m23, m24, m25, m26, m27, m28, m29,
m30, m31, m32, m33, m34, m35, m36, m37, m38, m39,
m40, m41, m42, m43, m44, m45, m46, m47, m48, m49,
m50, m51, m52, m53, m54, m55, m56, m57, m58, m59,
m60, m61, m62, m63, m64, m65, m66, m67, m68, m69,
m70, m71, m72, m73, m74, m75, m76, m77, m78, m79,
m80, m81, m82, m83, m84, m85, m86, m87, m88, m89,
m90, m91, m92, m93, m94, m95, m96, m97, m98, m99,
m100, m101, m102, m103, m104, m105, m106, m107, m108, m109,
m110, m111, m112, m113, m114, m115, m116, m117, m118, m119,
m120, m121, m122, m123, m124, m125, m126, m127, m128, m129,
m130, m131, m132, m133, m134, m135, m136, m137, m138, m139,
m140, m141, m142, m143, m144, m145, m146, m147, m148, m149,
m150, m151, m152, m153, m154, m155, m156, m157, m158, m159,
m160, m161, m162, m163, m164, m165, m166, m167, m168, m169,
m170, m171, m172, m173, m174, m175, m176, m177, m178, m179,
m180, m181, m182, m183, m184, m185, m186, m187, m188, m189,
m190, m191, m192, m193, m194, m195, m196, m197, m198, m199,
m200, m201, m202, m203, m204, m205, m206, m207, m208, m209,
m210, m211, m212, m213, m214, m215, m216, m217, m218, m219,
m220, m221, m222, m223, m224, m225, m226, m227, m228, m229,
m230, m231, m232, m233, m234, m235, m236, m237, m238, m239,
m240, m241, m242, m243, m244, m245, m246, m247, m248, m249,
m250, m251, m252, m253, m254, m255, m256);

var Menge: TMenge;

begin
if Menge in [m255] then beep;
if Menge in [m256] then beep;//hier Compilerfehler!
end;

end.
Bis zur viertletzten Codezeile compiliert er, bei der drittletzten Codezeile jedoch, beim Zugriff auf das 257. Element, moniert der Compiler: "Konstantenausdruck verletzt untere Grenzen" (hä, untere??).

Woran liegt das, und hat man eine Chance, das wegzubekommen? Mit {$Z2} oder {$Z4} war ich auch nicht erfolgreich.

Danke und Gruß

Delphi-Laie

Geändert von Delphi-Laie (22. Aug 2020 um 11:31 Uhr)
  Mit Zitat antworten Zitat