Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
AddData(DataArr[0], AExtraData, DataArr[0]); => AddData(DataArr[i], AExtraData, DataArr[i]);Миль пардон. Это уже моя ошибка когда набирал пример. Большое спасибо за замечание, поправил. :) Подводный камень там в другом.
Во втором — не верный порядок удаления элемента.Ну если допустить, что так (хеш берется от указателя), то объяснить почему можете?
Ну если допустить, что так (хеш берется от указателя), то объяснить почему можете?
function AddData(Data1, Data2: IData): IData;
begin
Result := CreateMerged_IData(Data1.Ptr, Data2.Ptr); //функция Create_IData создает новый экземпляр IData
end;
var DataArr: array of IData;
procedure AddDataToAll(const AExtraData: IData);
var i: Integer;
begin
if not Assigned(AExtraData) then
Exit;
for i := 0 to Length(DataArr) - 1 do
DataArr[i] := AddData(DataArr[i], AExtraData);
end;
отчаянно не хватает информации о версии Delphi, на которой код работает неправильно ))
а нынешние — умеют, хотя вроде есть директива, это поведение отключающая
Что не так с этим кодом?