28.05.2018, 12:41 [+3 UTC]
в нашей команде: 2 795 чел. | участники онлайн: 5 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
15.05.2018, 18:49

Последний вопрос:
28.05.2018, 12:03

Последний ответ:
28.05.2018, 08:55

Последняя рассылка:
28.05.2018, 12:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
16.10.2017, 21:58 »
svrvsvrv
Спасибо за подробную консультацию! [вопрос № 191491, ответ № 275378]
27.03.2012, 16:03 »
Stanislav B.
Большое Вам спасибо smile [вопрос № 185673, ответ № 270323]
21.09.2009, 00:27 »
Егоров Ярослав Владимирович
Огромное спасибо! Вы правы: теперь действительно понятно. [вопрос № 172367, ответ № 254428]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 256
Асмик Гаряка
Статус: Советник
Рейтинг: 38
Орловский Дмитрий
Статус: Мастер-Эксперт
Рейтинг: 4

Перейти к консультации №:
 

Консультация онлайн # 140754
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Сарумян
Отправлена: 26.07.2008, 09:07
Поступило ответов: 2

Здравствуйте.
В программе обьявлен массив (приложение №1).

По нажатию кнопки на главной форме вызываю модально окно (Форму 4).
На форме 4: есть ТEdit и TBitBtn.
При нажатии на кнопку пытаюсь передать массиву новое значение, увеличив перед этим его размер на 1. (приложение №2).

При клике вызывает ошибку Invalid Pointer Operation. Как с этим бороться? Форма обязательно должна вызываться модально.

Приложение:

Состояние: Консультация закрыта

Здравствуйте, Сарумян!
Ваша ошибка в том, что первоначальное значение Friend равно 1, размерность FriendList[] присваивается тоже 1. А индекс массива FriendList[] начинается с нуля.
Поэтому нужно писать так: FriendList[friend-1] := Edit1.Text;

Удачи!


Консультировал: Esi
Дата отправки: 26.07.2008, 10:00

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 226756 от Antony Belov

Здравствуйте, Сарумян!

Я бы вам предложил несколько улучшений:
1. Для работы со строками лучше использовать TStringList.
2. Pascal это не Си и размер массива хранить не обязательно, его всегда можно получить используя функцию Length.

Например, вашу функцию можно избавить от лишней переменной таким образом:

Приложение:


Консультировал: Antony Belov
Дата отправки: 26.07.2008, 12:17

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 140754

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 1

= общий = | 28.07.2008, 14:06 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Сарумян

1. Вам эксперт Antony Belov дал очень полезный совет, попытаться использовать в своей программе TStringList вместо динамического массива. Единственная его проблема, что он не обосновал свой совет. Но поверьте, если бы Вы использовали вместо динамического массива TStringList, то Вашей ошибки не возникло бы в принципе.
2. "...по-этому узнавать каждый раз размер массива не уместно, т.к. будет тратится существенное кол-во системных ресурсов..."
К сожалению, смотря на Ваш код, вот это самое отнюдь не явствует с непреклонной определённостью, поэтому сия претензия в адрес эксперта притянута за уши.

Давайте всё-таки высказываться по сути, а не исходя из предположения, что все эксперты без исключения полностью в курсе того, что Вы написали в своём коде.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15760 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018