Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
15-1256822775
Читинец
2009-10-29 16:26
2009.12.27
Мелкософт наехал не безработного.


15-1256481374
berlios
2009-10-25 17:36
2009.12.27
Треугольник


8-1172599000
shart
2007-02-27 20:56
2009.12.27
Удаление шума на изображении


4-1226217617
Riply
2008-11-09 11:00
2009.12.27
Строение "подструктуры" HANDLE_TABLE


15-1256614569
Big Joe
2009-10-27 06:36
2009.12.27
Домен на национальном языке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский