Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2017, 13:25   #1
Gambetto
 
Регистрация: 05.10.2017
Сообщений: 6
По умолчанию Динамический массив SpeedButton'ов

Всем привет!
Я что-то делаю не правильно, не могу понять, что именно. Вроде все правильно...
Использую RadXE3. Есть на форме панель (pnl_PathButtons), на неё создаётся кнопка. В скриншоте всё - сообщение отладчиика, я его не понимаю. Этот код спокойно компилируется, но при выполнении вызывает Access Violation
Код:
var
  PathButtons: array of TSpeedButton;
  i: Integer;
begin
  PathButtons[i]:= TSpeedButton.Create(pnl_PathButtons); // ругается на эту строку
  PathButtons[i].Parent   := pnl_PathButtons;
  PathButtons[i].Align    := alLeft;
  PathButtons[i].Width    := 150;
  PathButtons[i].Caption  := 'SpeedButton';
Изображения
Тип файла: jpg Скрин.jpg (94.8 Кб, 94 просмотров)
Тип файла: jpg ошибка.jpg (15.8 Кб, 91 просмотров)
Gambetto вне форума Ответить с цитированием
Старый 13.10.2017, 13:59   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

TObjectList<TSpeedButton>
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.10.2017, 15:08   #3
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Может есть смысл определиться со значением переменной i ?
kropotkina-alice вне форума Ответить с цитированием
Старый 13.10.2017, 16:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Может есть смысл определиться со значением переменной i ?
ага.


Цитата:
Сообщение от Gambetto Посмотреть сообщение
PathButtons: array of TSpeedButton;
а ещё обязательно выделить память под массив
Код:
SetLength( PathButtons, <количество_элементов> ):
Access Violation обычно и говорит об обращении к памяти, которая ещё не выделена (или объект не создан).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.10.2017, 22:37   #5
Gambetto
 
Регистрация: 05.10.2017
Сообщений: 6
По умолчанию

Ну, SetLength как раз и не хватало. Всё заработало, спасибо =)
Gambetto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Динамический массив virtuhay266 Общие вопросы Delphi 2 08.12.2010 15:22
Динамический массив! Mikhail91 Общие вопросы C/C++ 9 14.02.2010 14:45
Динамический массив Ueshua Общие вопросы C/C++ 7 28.12.2009 09:45