Форум: "Начинающим";
Текущий архив: 2011.06.19;
Скачать: [xml.tar.bz2];
ВнизПередача массива в процедуру Найти похожие ветки
← →
Cobalt © (2011-03-10 15:31) [0]Есть процедура:
procedure ExportToExcel(Log: TStringList; ColsCount: Integer; HideColumns: array of Integer);
вызывал
ExportToExcel(Logs, 5, [2]);
и
ExportToExcel(Logs, 5, []);
в обоих результатах имею:
low(HideColumns) = 0
High(HideColumns) =1307616
все элементы = 0
И такArr: array[0..0] of Integer;
я тоже пробовал - та же фигня :-(
Дельфи 2007
← →
Cobalt © (2011-03-10 15:37) [1]и
const HideColumns: array of Integer
тоже пробовал. Перебилдивал, удалял всё :(
← →
stas © (2011-03-10 17:09) [2]А у меня работает правильно в D7
← →
stas © (2011-03-10 17:13) [3]и D2010 тоже.
← →
Сергей М. © (2011-03-10 17:17) [4]А Length(HideColumns) при этом что кажет ?
← →
clickmaker © (2011-03-10 17:23) [5]а
type TColumnArray = array of Integer;
не пробовал?
← →
Amoeba_ (2011-03-10 17:49) [6]
> procedure ExportToExcel(Log: TStringList; ColsCount: Integer;
> HideColumns: array of Integer);
Путаешь динамические массивы с открытыми, а это ведь две большие разницы. RTFM.
← →
Rhino © (2011-03-10 21:08) [7]Разрешите совет
НЕ используйте множества []
просто создайте пользовательскй тип массива
и передавайте по ссылке (var)
и не используйте по возможности, динамические массивы, если придется код выносить в dll будут болше проблемы
← →
Г. Остер (2011-03-10 22:06) [8]
> Rhino © (10.03.11 21:08) [7]
+1
← →
RWolf © (2011-03-11 13:02) [9]
> Rhino © (10.03.11 21:08) [7]
> Разрешите советНЕ используйте множества [] просто создайте
> пользовательскй тип массиваи передавайте по ссылке (var)и
> не используйте по возможности, динамические массивы, если
> придется код выносить в dll будут болше проблемы
какие?
и при чём тут множества?
← →
Anatoly Podgoretsky © (2011-03-11 13:43) [10]> RWolf (11.03.2011 13:02:09) [9]
Он путает Гегеля с Бабелем, квадратные скобки с открытым массивом.
← →
Гаврила © (2011-03-11 19:34) [11]
> Он путает Гегеля с Бабелем
Главное - не перепутать их с Багелем
← →
Servy © (2011-03-11 23:43) [12]> [0]
Приведенный вами код работает вполне успешно - ровно как ожидалось. Ошибка где-то в другом месте. Если проблема все ее не решена, собирайте тестовый проект с минимумом содержимого и выкладывайте куда-нибудь, чтобы все могли лицезреть такое необычное поведение.
Пару раз у меня случалось, что врал отладчик, показывая неверные значения, хотя программа выполнялась верно. Попробуйте вывести High(HideColumns) в лог, на экран или куда-нибудь еще.
> Rhino © (10.03.11 21:08) [7]
Количество бреда в вашем сообщении зашкаливает.
> НЕ используйте множества []
Нет там никаких множеств.
> просто создайте пользовательскй тип массива
Зачем, если автор хочет открытый массив?
> и передавайте по ссылке (var)
Зачем, если он не собирается изменять внешнюю переменную внутри процедуры? То, что он не собирается ее изменять - вполне очевидно, так как в текущей реализации он использует открытый массив.
> и не используйте по возможности, динамические массивы, если
> придется код выносить в dll будут болше проблемы
Не будет никаких проблем. Проблемы будут, если эту dll захочется использовать не из программы, написанной на Делфи. Однако, в таком случае проблема будет и с отсутствием класса TStringList, так что неиспользование динамического массива не спасет.
← →
KilkennyCat © (2011-03-12 02:33) [13]
> clickmaker © (10.03.11 17:23) [5]
или так:
procedure ExportToExcel(Log: TStringList; ColsCount: Integer; HideColumns: Tarray<Integer>);
только это наверное лишь с 2010 версии
← →
KilkennyCat © (2011-03-12 02:36) [14]
> Servy © (11.03.11 23:43) [12]
отлично разжевано. присоединяюсь.
← →
Германн © (2011-03-12 02:46) [15]
> Гаврила © (11.03.11 19:34) [11]
>
>
> > Он путает Гегеля с Бабелем
>
>
> Главное - не перепутать их с Багелем
Пусть только попробует!
:)
← →
Anatoly Podgoretsky © (2011-03-12 11:13) [16]> Германн (12.03.2011 02:46:15) [15]
Я бы тоже не советовал
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.003 c