Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
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, на которой код работает неправильно ))
а нынешние — умеют, хотя вроде есть директива, это поведение отключающая
Что не так с этим кодом?