|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Результаты опроса: Стоит ли использовать ActiveX, написанный на Delphi, в своих приложениях | |||
Нет | 1 | 14.29% | |
Да | 3 | 42.86% | |
В зависимости от кривизны рук разработчика | 4 | 57.14% | |
Лучше писать ActiveX на другом языке | 2 | 28.57% | |
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 7. Вы ещё не голосовали в этом опросе |
|
|
Опции темы | Поиск в этой теме |
22.02.2010, 00:05 | #21 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
|
22.02.2010, 00:10 | #22 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
вы же сами сказали, что второй параметр объявлен как var Values : Integer, поэтому при передаче Integer(PValues) функция получит указатель на указатель - var-параметры сами по себе передаются через указатели. В случае с PValues^[ 0 ] будет передан указатель на первый элемент массива.
|
22.02.2010, 00:13 | #23 | |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
Цитата:
|
|
22.02.2010, 00:15 | #24 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
записи PValues^[ 0 ] и PValues[ 0 ] в данном случае имеют один и тот же смысл.
|
22.02.2010, 00:16 | #25 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
|
22.02.2010, 00:25 | #26 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
Кстати, проблема тут вообще не в передаче массива - вы же передавали массив как Integer(PValues) и после этого смогли спокойно обращаться к элементам массива. Это говорит о том, что функция вообще не трогает этот параметр, т.к. в противном случае, если бы функция изменяла массив, она бы поместила своё значение в указатель PValues и при обращении к массиву после вызова вы бы получили access violation или совершнно другие значения массива. Ищите проблему в другом месте.
|
22.02.2010, 00:28 | #27 |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
Это функция и не трогает передаваемый параметр, она по этому указателю размещает свои значения
|
22.02.2010, 00:32 | #28 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
У меня складывается впечатление, что вы вообще не вдумываетесь в то, что я пишу. Еще раз повторяю: Integer(PValues) передаёт указатель на PValues - т.е. указатель на указатель, и со стороны функции первым элементом массива по полученному указателю будет значение указателя PValues. Теперь сопоставьте это с моим предыдущим сообщением.
|
22.02.2010, 00:40 | #29 | |
Новичок
Джуниор
Регистрация: 21.02.2010
Сообщений: 17
|
Цитата:
|
|
22.02.2010, 00:52 | #30 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
Я с самого начала сказал, что объявление var Values : Integer для передачи массива вводит в заблуждение - вот с вами это и случилось. Не ломайте мозг ни себе, ни другим людям - замените в объявлении функции этот параметр на Values : PInteger (без var) и дальнейшая работа с этой функцией станет намного прозрачней.
Последний раз редактировалось maxionans; 22.02.2010 в 00:56. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание\использование своих DLL библиотек | Vol666 | Общие вопросы Delphi | 5 | 26.08.2009 11:55 |
использование в delphi com объектов | Anekdot | Помощь студентам | 0 | 18.06.2009 19:54 |
Использование JavaScript в Delphi... | Valdis | Общие вопросы Delphi | 2 | 27.09.2007 08:45 |
Использование JPEG в Delphi 7 | Aslan | Мультимедиа в Delphi | 11 | 02.08.2007 13:25 |
Использование функции Excel из Delphi | Геля | Общие вопросы Delphi | 3 | 07.06.2007 07:33 |