Форум: "Основная";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
ВнизПередать параметром процедуре указатель на массив Найти похожие ветки
← →
inferno (2009-01-13 08:27) [0]Здравствуйте.
type
TControl_array = array of TControl;
PControl_array = ^TControl_array;
var
dis_panels:array of tpanel;
dis_edits:array of TEdit;
dis_button_del: array of TSpeedButton;
Идея такая. Есть процедура, работающая с массивом. массивы разных типов как описано выше.
Код процедуры:
procedure Tgrouptest_form.renum_array(arr:pControl_array; del_num:integer);
var i:integer;
begin
for i:= del_num to Length(TControl_array(arr))-2 do begin
TControl_array(arr)[i]:=TControl_array(arr)[i+1];
TControl_array(arr)[i].Tag:=i;
end;
SetLength(TControl_array(arr),Length(TControl_array(arr))-1);
end;
Вызов:renum_array(pointer(dis_panels),n);
Дает коректный результат до тех пор пока дело не дойдет до удаления последнего элемента, в этом случае длина массива принимает непредсказуемое значение :)
Может быть такая реализация задачи недопустима?
← →
MBo © (2009-01-13 08:57) [1]в заголовке
arr:pControl_array
а в процедуре
TControl_array(arr)
А почему бы не использовать списки (TComponentList)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c