Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 15.04.16 15:24 
- Nachträglich durch die Entwickler-Ecke gelöscht -
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 376
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Fr 15.04.16 20:06 
Hallo,

bei mir wird "type of" an der Stelle vom Compiler abgelehnt. Welchen Compiler benutzt Du?

Bei k1 :=#$30A0 meldet der Compiler "Bereichsverletzung".

(Delphi 7)

Das nur zur Info,
hoffentlich hilft es,

Gruß
GuaAck
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 16.04.16 00:27 
- Nachträglich durch die Entwickler-Ecke gelöscht -
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 16.04.16 06:53 
Type of sollte nicht benutzt werden. Das verhält sich wie class of und war wohl für den .NET Compiler von Delphi 2006 gedacht. Sprich eine Referenz auf den Typ. Das funktioniert aber nicht korrekt.
Alles weitere kannst du hier und in den dort angegebenen Links nachlesen:
quality.embarcadero.com/browse/RSP-9850

Wenn du einfach schreibst TypA = TypB, ist TypA ein Alias für TypB. Wenn du schreibst TypA = type TypB, wird ein neuer Typ angelegt, so dass zwar die gleiche Funktionalität wie TypA verwendet wird, aber der Typ immer als TypB erkennbar ist. Du kannst also zur Laufzeit aus einer Variable erkennen, dass sie TypB ist. Ohne das type würde sie als TypA identifiziert werden.

Bei Delphi 10 kommt bei der Zuweisung von #$30A0 auch die korrekte Fehlermeldung:
Zitat:
E1012 Konstantenausdruck verletzt untere Grenzen

Und bei k2 kommt kein Fehler, aber "type of" sollte ja auch nicht verwendet werden.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 16.04.16 17:42 
- Nachträglich durch die Entwickler-Ecke gelöscht -