![]() |
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Ich hatte gehofft, das ist es. Aber das steht leider auf Byte :(
Das einzige was anders ist "Optimierung" steht auf False. Aber mit True gehts auch nicht. Ich bekomme langsam einen Affen. Wie kann EINE Zeile Code so falsch sein und in einem anderen Projekt seit Jahren korrekt? Ich habe gerade aber mal den Code vom Eingangsbeitrag in das funktionierende Projekt kopiert. Es funktioniert nicht! :wall: Liegt das an der Hitze? Mit anderen Namen gehts nicht.
Delphi-Quellcode:
type
TABC = (g1, g2, g3); TABCSet = set of TABC; var ABCSet: TABCSet; begin ABCSet := TABCSet(Byte(1)); |
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Bist du dir sicher dass du nicht in Wirklichkeit
Delphi-Quellcode:
meintest?
GroupSet := [TGroups(2)];
|
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Was ich vor habe.
In irgendeiner Datei steht eine Zahl 3. Oder irgendeine andere. Welche ist egal. Die 3 steht in diesem Fall für g2 und g3 zusammen. Glaube ich jedenfalls. Das ist aber auch alles total egal denn in einem anderen Projekt funktioniert das mit Wochentagen seit Jahren. Ich habe ein Set of TWochenTage beginnend mit Montag und statt eine lange Liste von Wochentagen als string speichere ich die angeklickten Werte als Byte Wert ab. Einfacher gesagt speichere ich die Byte-Werte der Indexe der Enums ab und prüfe später mit
Delphi-Quellcode:
ob Enum 123 in diesem Wertebereich liegt.
in
Delphi-Quellcode:
So habe ich es noch nie gemacht und das lässt sich auch nicht kompilieren. So wie es im Eingangspost steht mache ich das seit Jahren aber wieso funktioniert das jetzt nicht mehr? Das ist doch verhext!
GroupSet := [TGroups(2)]
Von Stackoverflow habe ich dieses Beispiel rauskopiert und in einer leeren Konsolenanwendung übernommen. Was erhalte ich? Ja, eine ungültige Typumwandlung. Ich habe absolut keine Ahnung mehr woran das liegen soll
Delphi-Quellcode:
Wer mir nicht glaubt, versucht es selbst. Hier ist die minimale Anwendung
type
TXSamples = set of TXSample; var XSamples: TXSamples; begin ValueToStoreInDB := Integer(XSamples); Integer(XSamples) := ValueReadFromDB; end;
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; type TGroups = (g1, g2, g3); TGroupSet = set of TGroups; var GroupSet: TGroupSet; begin GroupSet := TGroupSet(Byte(2)); end. |
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Bist Du sicher, dass Du auch früher schon Integer-Literale direkt gecastet hast? Wenn ich statt
Delphi-Quellcode:
var
GroupSet: TGroupSet; begin GroupSet := TGroupSet(Byte(2)); end.
Delphi-Quellcode:
schreibe, funktioniert's.
var
b: Byte; GroupSet: TGroupSet; begin b := 2; GroupSet := TGroupSet(b); end. |
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Ich lese Zahlen aus einer Inidatei aus. Mehr nicht. Alles ganz genau so wie ich es hier mehrfach geschrieben habe. Ich bin mir sicher!
|
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
.. mit welcher Delphi Version funktioniert es denn?
Habe es gerade mit Delpi XE getestet - "Invalid typecast" Grüße Klaus |
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
10.3 ce.
|
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
.. mit 10.3.1 (nicht CE) tritt auch "Invalid typecast" auf.
Grüße Klaus |
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Zitat:
|
AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Hallo,
also bei mir muss "Erweiterte Syntax" (D2007) bei den Compiler-Optionen aus sein, dann meckert Delphi nicht mehr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 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