Witam. Chce skonwertowac kod ponizej na Delphi
typedef enum
{
HL_ATTRIBUTE_INVALID = 0,
HL_ATTRIBUTE_BOOLEAN,
HL_ATTRIBUTE_INTEGER,
HL_ATTRIBUTE_UNSIGNED_INTEGER,
HL_ATTRIBUTE_FLOAT,
HL_ATTRIBUTE_STRING
} HLAttributeType;
typedef struct
{
HLAttributeType eAttributeType;
hlChar lpName[252];
union
{
struct
{
hlBool bValue;
} Boolean;
struct
{
hlInt iValue;
} Integer;
struct
{
hlUInt uiValue;
hlBool bHexadecimal;
} UnsignedInteger;
struct
{
hlFloat fValue;
} Float;
struct
{
hlChar lpValue[256];
} String;
} Value;
} HLAttribute;
i moim zdaniem ma to byc tak w Delphi
type
HLAttributeType =(
HL_ATTRIBUTE_INVALID,
HL_ATTRIBUTE_BOOLEAN,
HL_ATTRIBUTE_INTEGER,
HL_ATTRIBUTE_UNSIGNED_INTEGER,
HL_ATTRIBUTE_FLOAT,
HL_ATTRIBUTE_STRING);
HLAttribute = record
lpName : array[0..252-1] of Char;
case eAttributeType : HLAttributeType of
1: (bValue : Boolean);
2: (iValue : Integer);
3: (uiValue : LongWord; bHexadecimal : Boolean);
4: (fValue : Single);
5: (sValue : string[255]);
end;
Powiedzcie czy to jest ok bo jak na razie nie zabordzo mam jak sprawdzic :/ . I chcialbym jeszcze (jak to mozliwe) zeby w case moglem wybrac jak w C. Juz tlumacze o co chodzi ;-) .
W C dostep do wartosci uzyskuje tak "eAttributeType.Value.UnsignedInteger.bHexadecimal", a
w Delphi prawdopodobnie "eAttributeType.bHexadecimal" (choc nie jestem pewien).
Tak jest chyba tez dobrze ale zalezy mi na wygladzie tez takze prosze o pomoc :).