![]() |
Delphi-Version: 7
Array mit Type und vordefinierte Werte
Hallo,
ich möchte gerne ein Array mit Werten vordefinieren, leider komme ich nicht weiter...
Delphi-Quellcode:
2. Frage:
ype
TitType = (itString, itInteger, itBoolean); TIdentType = packed record idName : String[30]; case idType : TitType of itString: (idDefaultStr : String[30]); itInteger: (idDefaultInt : Integer); itBoolean: (idDefaultBool : Boolean); end; // ab hier hakt es.... TArrayTest = array [0..2] of TIdentType : (['test';itString;'initst']); Am liebsten hätte ich das nachfolgende für den Record, geht das irgendwie, dass der Record nur aus immer 3 gleichen Bezeichnern besteht, je nach Typ?
Delphi-Quellcode:
Danke im Voraus!
...
TIdentType = packed record idName : String[30]; case idType : TitType of itString: (idDefault : String[30]); itInteger: (idDefault : Integer); itBoolean: (idDefault : Boolean); end; |
AW: Array mit Type und vordefinierte Werte
1. Du hast das case in Records falsch verstanden. Die 3 Variablen sind immer vorhanden und müssen unterschiedlich benannt sein damit man auch darauf zugreifen kann.
Die Variablen überlappen nur im Speicher weswegen man sich entscheiden sollte welche davon man nutzt für die jeweilige Instanz des records. Bzw. man muss selbst darauf aufpassen dass man nur die Variable benutzt die zu dem ausgewählten idType passt. Da kann der Compiler nichts machen, da er ja nicht weiß welches record zur Laufzeit welchen Typ hat. 2. Type-Deklarationen können keinen Konstanten-Default Wert haben - das geht nur bei (globalen) Variablen und Konstanten:
Delphi-Quellcode:
type
TArrayTest = array [0..2] of TIdentType; var test: TArrayTest = ((idName: 'Test'; idType: itString; idDefaultStr: 'Hallo'), (idName: 'Test2'; idType: itInteger; idDefaultInt: 1234), (idName: 'Test3'; idType: itBoolean; idDefaultBool: false)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 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