Registriert seit: 5. Mai 2008
940 Beiträge
FreePascal / Lazarus
|
Re: Interner Fehler: LA33
21. Mai 2009, 10:36
TLogicalList ist keine Liste, sondern nur ein dynamisches Array.
SetLengthOfLogList(Test,48 ) bewirkt das gleiche wie SetLength(Test,6)
TLogicalList soll viele logische Werte speichern können.
Sinnvoll wäre ein Array Of Boolean.
Das verbraucht jedoch für jeden Wert im Array ein Byte.
Ich habe es daher so definiert:
type TLogicalList = Array Of Byte;
Dann wird jeder logische Wert durch ein Bit dargestellt.
Die 48 in "SetLengthOfLogList(Test,48 )" steht für 48 Logische Werte = 48 Bits = 6 Bytes.
Um einen einzelnen Wert zu setzen, benutzt man SetBitInLoglist(var Loglist: TLogicalList; index: Word; Value: Boolean);
SetBitInLogList(Test,2,false) setzt also den dritten logischen Wert auf 0 (false).
Marvin
|