Generic Component mit dynamischem Array geht nicht
14. Mär 2010, 13:33
Eine generic Componente mit dynamischen Array compiliert zwar ohne Fehlermeldung, nur beim Testen gubt es einen Absturz.
Die Ursache ist ein fehlerhafter Wert für Length(Items), wenn Items ein dynamisches Array ist.
Falls jemand dazu eine Idee hat, so bitte um Mitteilung.
Lg Frizzi
Type
THFArrayBase<GItem> = class(
...
FArray :Array of GItem;
Type
THFByteArray = Class(THFArrayBase(Byte)
...
Procedure THFArrayBase<GItem>.Add(const Item:GItem);
Begin
SetLength(FArray,Length(FArray)+1);
FArray[High(FArray)] := Item;
If FSortDir <> sdNone then Sort;
End;
Procedure THFArrayBase.Add(const Items:Array of GItem);
Var
Inx,aLng,iLng :Integer;
Begin
aLng := Length(FArray);
iLng := Length(Items); //ergibt irgendeinen Fantasiewert
SetLength(FArray,aLng+iLng);
For Inx := 0 to High(Items) do
FArray[aLng+Inx] := Items[Inx];
If FSortDir <> sdNone then Sort;
End;
|