Ik loop tegen een vreemde foutmelding op:
[Error]Incompatible types: 'Word' and 'TVarTypes'
Waar haalt Delphi dat word-type vandaan?
De regel waar het fout gaat is de tweede regel:
CheckVar retourneert een TVarType, zie deze code:
TVarTypes is een enumerated type, als volgt gedefinieerd.
Ik heb de volgende varianten geprobeerd:
Gaat FOUT:
Gaat FOUT:
Gaat GOED:
Maar ik wil geen Dummy in mijn code, vooral omdat hij na de controle niet belangrijk meer is. Is er op een andere manier omheen te gaan?
[Error]Incompatible types: 'Word' and 'TVarTypes'
Waar haalt Delphi dat word-type vandaan?
De regel waar het fout gaat is de tweede regel:
code:
1
2
| case CheckVar('..') of
VT_Reserved:Error('VarName is reserved'); |
CheckVar retourneert een TVarType, zie deze code:
code:
1
2
3
| function CheckVar(VarName:string):TVarType; begin end; |
TVarTypes is een enumerated type, als volgt gedefinieerd.
code:
1
2
| Type TVarTypes = (VT_Unknown,VT_Reserved,VT_NoVar,VT_String); |
Ik heb de volgende varianten geprobeerd:
Gaat FOUT:
code:
1
2
| case Word(CheckVar('..')) of
VT_Reserved:Error('VarName is reserved'); |
Gaat FOUT:
code:
1
2
| case TVarType(CheckVar('..')) of
VT_Reserved:Error('VarName is reserved'); |
Gaat GOED:
code:
1
2
3
4
5
6
| var
Dummy=TVarType;
Dummy:=CheckVar('..')
case Dummy of
VT_Reserved:Error('VarName is reserved'); |
Maar ik wil geen Dummy in mijn code, vooral omdat hij na de controle niet belangrijk meer is. Is er op een andere manier omheen te gaan?
edit:
Iets veranderd in verband met leesbaarheid
Iets veranderd in verband met leesbaarheid