Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
16. Sep 2021
Das war schon von Anfang an in der Sprachdefinition so vorgesehen. Hier ein Bild aus dem Pascal User Manual and Report:
Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
16. Sep 2021
Wenn kein Tag-Field da ist, dann gilt der Tag-Typ nur für die Konstanten des case. Ein Tag-Field ist in der Hinsicht auch nur ein ganz normales Feld des Records. Beim Zugriff auf die Varianten wird der Inhalt des Tag-Fields auch nicht überprüft. Das ginge eh erst zur Laufzeit.
Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
16. Sep 2021
type
THackersCaseSelector = (ThisIsTheRealStructure, ThisIsWhatTheFuckingApiRequires);
Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
16. Sep 2021
Es gibt halt den Typ der folgenden case-label Konstanten an.
Die Frage habe ich noch nicht verstanden (zumindest nicht so dass ich sie beantworten könnte).
Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
16. Sep 2021
Gibt es aber schon seit Anbeginn aller Pascal-Zeiten!
Häufig gibt es zu diesem Typ auch eine Variable, also ein Feld in dem Record (das tag field), um festzulegen, welcher Variantentyp gerade in dem Record steht. Aber man kann das eben auch weglassen.
Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
16. Sep 2021
type
TBDataRead = packed record
w1: WORD;
w2: WORD;
i1: SMALLINT;
i2: SMALLINT;
end;
TArrayOfWordRead = array of WORD;
Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
16. Sep 2021
Mir stellt sich eher die Frage, warum du das überhaupt brauchst.