Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.19;
Скачать: CL | DM;

Вниз

Передача массива в процедуру   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.008 c
2-1300268485
>|<
2011-03-16 12:41
2011.06.19
Как сформировать свой экземпляр типа TMethod ?


1-1257843882
antonsha
2009-11-10 12:04
2011.06.19
Вопрос по добавлению элементов


15-1299164683
bad man
2011-03-03 18:04
2011.06.19
бинарные операции


15-1298928603
Юрий
2011-03-01 00:30
2011.06.19
С днем рождения ! 1 марта 2011 вторник


2-1299768007
harisma
2011-03-10 17:40
2011.06.19
Слияние двух стринглистов