Вверх ↑
Разработчик
Ответов: 26170
Рейтинг: 2127
#1: 2007-11-03 22:21:02 ЛС | профиль | цитата
Galkov писал(а):
Чего-чего

Поторопился выразиться -- указатель на область данных. Если я применяю к нему FreeData(dt), то данные очищаются, я пробовал, и, действительно, данные пропали.
Вот тут я пытался сделать так


procedure ThiMT_MTArrayRW._work_doWrite;
var Arr:PArray;
Ind:TData;
dt:TData;
begin
Arr := ReadArray(_data_Array);
if Arr=nil then exit;
Ind := ReadData(_Data,_data_Index,@_prop_Index);
dt := ReadMTData(_Data,_data_Value);
// CopyData(@dt,@dt);
Arr._Set(ind,dt);
FreeData(@dt);
end;
И получил крэш.
Galkov писал(а):
Мда...
А я всегда думал, что очищать нельзя, потому что не создавал...
Но как не создавал, а вот тут


procedure ThiMT_MTArray._Add;
var dt:PData;
begin
new(dt);
CopyData(dt,@Val);
FList.Add(dt);
end;
по new(dt) создаем область данных и указатель сохраняем в списке.
карма: 22

0