AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung
Thema durchsuchen
Ansicht
Themen-Optionen

TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

Ein Thema von DieDolly · begonnen am 4. Jun 2019 · letzter Beitrag vom 4. Jun 2019
Antwort Antwort
Seite 2 von 3     12 3      
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#11

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 14:23
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!
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));

Geändert von DieDolly ( 4. Jun 2019 um 14:29 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 14:31
Bist du dir sicher dass du nicht in Wirklichkeit GroupSet := [TGroups(2)]; meintest?
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#13

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 14:36
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 in ob Enum 123 in diesem Wertebereich liegt.

GroupSet := [TGroups(2)] 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!

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:
type
  TXSamples = set of TXSample;
var
  XSamples: TXSamples;
begin
  ValueToStoreInDB := Integer(XSamples);
  Integer(XSamples) := ValueReadFromDB;
end;
Wer mir nicht glaubt, versucht es selbst. Hier ist die minimale Anwendung
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.

Geändert von DieDolly ( 4. Jun 2019 um 14:47 Uhr)
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#14

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 14:56
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:
var
  b: Byte;
  GroupSet: TGroupSet;
begin
  b := 2;
  GroupSet := TGroupSet(b);
end.
schreibe, funktioniert's.
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#15

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 14:57
Ich lese Zahlen aus einer Inidatei aus. Mehr nicht. Alles ganz genau so wie ich es hier mehrfach geschrieben habe. Ich bin mir sicher!
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 14:57
.. mit welcher Delphi Version funktioniert es denn?
Habe es gerade mit Delpi XE getestet - "Invalid typecast"

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#17

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 14:59
10.3 ce.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 15:04
.. mit 10.3.1 (nicht CE) tritt auch "Invalid typecast" auf.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#19

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 15:06
Ich lese Zahlen aus einer Inidatei aus. Mehr nicht. Alles ganz genau so wie ich es hier mehrfach geschrieben habe. Ich bin mir sicher!
Dann stehen Deine Ausgangswerte für den Cast aber in Variablen und nicht als Literale im Quelltext, wie es in Deinen Beispielen bislang der Fall war. Mit Variablen funktioniert der Cast in Delphi 2010 und 10.1.
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: Ungelöst: TMeinSet(Byte(1)) in Variable > ungültige Typumwandlung

  Alt 4. Jun 2019, 15:06
Hallo,
also bei mir muss "Erweiterte Syntax" (D2007) bei den Compiler-Optionen aus sein,
dann meckert Delphi nicht mehr.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz