Hallo,
in der Zeile >>configList[1].func := tFunction(byteArray[0]);<< wird Müll produziert.
Das korrupte Ergebnis habe ich als Bild angehängt.
Der Bug erinnert mich an einen älteren Bug "byte array enum cast".
Bitte nachbessern
Gruß
Thomas
program Test;
// compiler version 05.09.08
Device = mega2560, VCC=5;
Import;
Define
ProcClock = 16000000; {Hertz}
StackSize = $0100, iData;
FrameSize = $0100, iData;
Implementation
{$IDATA}
type
tFunction = (FUNC_OFF, FUNC1, FUNC2, FUNC3, FUNC4, FUNC5,
FUNC6, FUNC7, FUNC8, FUNC9);
tConfig = record
func : tFunction;
end;
tConfigList = array[0..2] of tConfig;
var
byteArray : array[0..1] of byte;
configList : tConfigList;
begin
FillBlock(@configList, sizeof(configList), 0);
byteArray[0] := 8;
configList[1].func := tFunction(byteArray[0]);
loop
endloop;
end Test.
in der Zeile >>configList[1].func := tFunction(byteArray[0]);<< wird Müll produziert.
Das korrupte Ergebnis habe ich als Bild angehängt.
Der Bug erinnert mich an einen älteren Bug "byte array enum cast".
Bitte nachbessern
Gruß
Thomas
Code
program Test;
// compiler version 05.09.08
Device = mega2560, VCC=5;
Import;
Define
ProcClock = 16000000; {Hertz}
StackSize = $0100, iData;
FrameSize = $0100, iData;
Implementation
{$IDATA}
type
tFunction = (FUNC_OFF, FUNC1, FUNC2, FUNC3, FUNC4, FUNC5,
FUNC6, FUNC7, FUNC8, FUNC9);
tConfig = record
func : tFunction;
end;
tConfigList = array[0..2] of tConfig;
var
byteArray : array[0..1] of byte;
configList : tConfigList;
begin
FillBlock(@configList, sizeof(configList), 0);
byteArray[0] := 8;
configList[1].func := tFunction(byteArray[0]);
loop
endloop;
end Test.