Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
6-1237876800
Vudu
2009-03-24 09:40
2011.06.19
Отключить/подключить интернет


15-1298803240
Дмитрий С
2011-02-27 13:40
2011.06.19
Помощь по дизайну


2-1299971156
Сергей К.
2011-03-13 02:05
2011.06.19
Нажатие клавиши


2-1299788475
rodionov_uv
2011-03-10 23:21
2011.06.19
помогите организовать проверку


15-1298680305
KilkennyCat
2011-02-26 03:31
2011.06.19
Никсовая сборка-роутер?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский