procedure ThiMT_MTArray._Set;
var ind:integer;
dt:PData;
begin
ind := ToIntIndex(Item);
if(ind >= 0)and(ind < _Count)then begin
dt := PData(FList.Items[ind]);
FreeData(dt);
dispose(dt);
new(dt);
CopyData(dt,@Val);
FList.Items[ind]:= dt;
end;
end;
------------ Дoбавленo:
Про _Get тоже интересно
function ThiMT_MTArray._Get;
var dt:PData;
ind:integer;
begin
ind := ToIntIndex(Item);
if(ind >= 0)and(ind < _Count)then begin
Result := true;
dt := PData(FList.Items[FList.Count-1]);
CopyData(@Val, dt);
end
else Result := false;
end;
Galkov писал(а):
Не аргументЯ понимаю, уточню -- тупое убирание Copy(@dt,@dt) приводит к краху.