Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
1

Как разделить объявление массива контролов и его инициализацию конкретными компонентами

24.11.2018, 15:51. Показов 1107. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте.

Такое объявление совмещённое с инициализацией успешно работает в конструкторе формы
C++
1
TButton *ArrBut[3] = {Button1, Button2, Button3};
Но мне нужно вынести объявление в общий раздел. этот код не проходит.
Проходит только
C++
1
TButton *ArrBut[3];
Что нужно написать в конструкторе чтобы проинициализировать созданный массив тремя конкретными кнопками?
Неужели в столбик присваивать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2018, 15:51
Ответы с готовыми решениями:

Объявление массива контролов
При объявлении массива контролов столкнулся с следующей записью: Dim btn As Button() btn = New...

Как сделать объявление переменной Dim r As Range чтобы она сразу имела инициализацию диапазона
Я только начинаю изучать этот язык. Подсажите как сделать объявление переменной Dim r As Range...

Массив. Разделить каждый элемент массива на разность между компонентами, имеющими максимальное и минимальное значение
Дан массив у(у1,у2,у3,....,у20)Разделить каждый элемент массива на разность между компонентами,...

Как разделить определение и объявление в шаблонных классах?
Доброго! Как можно реализовать разделение на определение & объявление в шаблонных...

7
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
24.11.2018, 17:01 2
Не хочешь в столбик - замени массив на std::vector и проинициализируешь двумя строками любое количество элементов.
1
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
24.11.2018, 17:32  [ТС] 3
Цитата Сообщение от volvo Посмотреть сообщение
замени массив на std::vector
пример можно?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
24.11.2018, 17:49 4
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
// Это объявление:
std::vector<TButton *> ArrBut(6);
 
 
// Это - инициализация:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    TButton* arr[] = {Button1, Button2, Button3, Button4, Button10, Button20};
    ArrBut.assign(&arr[0], &arr[0] + 6); // заполнил вектор 6-ю кнопками
}
2
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
24.11.2018, 18:02  [ТС] 5
volvo, а так можно?

Объявление:
C++
1
TButton *arr[6];
Инициализация:
C++
1
TButton* arr[] = {Button1, Button2, Button3, Button4, Button10, Button20};
Где можно почитать про вектор для новичков?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
24.11.2018, 18:47 6
Цитата Сообщение от jkrnd Посмотреть сообщение
а так можно?
Можно, но при объявлении и инициализации у тебя разные массивы: тот, что объявлен глобально, не инициализируется, потом не удивляйся, что не найдешь в нем того, что хотелось в него внести.

Цитата Сообщение от jkrnd Посмотреть сообщение
Где можно почитать про вектор для новичков?
Для новичков не знаю, я читал Josuttis-а и Скотта Майерса в свое время.
1
178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
24.11.2018, 19:12  [ТС] 7
убедился, что так как в посте 5 делать нельзя. прийдётся или в столбик или через вектор.

Добавлено через 22 минуты
Цитата Сообщение от volvo Посмотреть сообщение
Скотта Майерса
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Это?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
24.11.2018, 19:18 8
Нет, Scott Meyers: Effective STL ("Эффективное использование STL" в русском переводе)
1
24.11.2018, 19:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2018, 19:18
Помогаю со студенческими работами здесь

Как правильно реализовать инициализацию массива функцией?
Здравствуйте! Мне нужно что бы вся инициализация массива происходила в отдельной функции и что бы...

Совместите объявление и инициализацию структуры. После инициализации структуры выполните изменение ее полей с последующи
Написать программу структурного описания каталога одной книги. ...

Как обновить фрейм со всеми его компонентами?
Пример. Есть окно на нем JComboBox в который помещаются компоненты из ArrayList. ArrayList ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru