![]() |
|
|
![]()
|
|
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Когда то я использовала поле Values, только для List контрола. В ComboBox тоже есть такие свойства, для установки имени Names, которое будет отображаться в списке и самого значения, values, которое можно получить , выбрав строку. Но вот бьюсь и никак не могу задать эти поля. Как это правильно сделать?
Я делаю так: for (int k2 = 0; k2 < 14; ++k2){ SubCPanel[k1]->ComboBox->Items->Add(Buttons[i].ComboValuePl[k2]); AnsiString s = ","; SubCPanel[k1]->ComboBox->Items[k2].NameValueSeparator = s.operator [](1); } Он автоматически должен разделить на имя и значение или как? И как потом получить значение определенной строки? Это сообщение отредактировал(а) Aline - 16.3.2009, 10:50 |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Ты имеешь ввиду индекс выделенной строки?
|
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
mrbrooks, нет, не индекс. Может я не совсем понятно выразилась или ты не сталкивался с этим: есть пара имя и значение. Т.е. строке присваивается имя определенное и оно отображается в списек. А значение хранится где то в памяти и пользователю не видно.
К примеру, в списке какие то строковые данные, понятные обычному пользователю, а в программе ты используешь значения, связанные с этими именами, например числовые. Например, есть список городов и тогда, Имя(Names) - это город, а значение (Values) - телефонный код города. Т.е. пользователь просто выбирает город, а программа уже знает какой код с ним связан. Это просто к примеру, может так будет понятней. |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Aline, понятно.
Вся фишка в том, что список должен состоять из строк (то бишь ComboBox->Items) Вася=555-77-99 Коля=532-89-89 Хуан Педрос=222-33-77 Чекинья Гонзаго=587-98-98 тогда - например в событие OnChange ComboBoxa - ты можешь получить по индексу инфу раздельно.
Собственно щелкнув по Хуану Педросу получишь его имя и телефон уже раздельно. |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
mrbrooks, ну это понятно, а как заполнить то Names и Value, чтобы потом было что получать?
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Заполните стандартным способом строками Левая часть = правая часть (как я понял)
|
|||
|
||||
| dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
Values - это не скрытое значение, это просто часть строки после разделителя. |
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Aline, В ComboBox должны быть строки A=1 Б=2 В=3 Тогда при парсинге строки A - это Name, 1 - это Value. Однако есть подозрение что ты хотела что бы A отображалось а 1 видно не было. Тут я думаю нужно использовать дополнительный TStringList |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
mrbrooks, ну да, я это и имела ввиду. Ведь с List контролом так и было
|
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
Aline, Тогда без дополнительного TStringList не обойтись.
Добавлено через 1 минуту и 9 секунд Причем если информация будет в нем редактироваться - прийдется его ориентировать на файл или даже БД - в зависимости от объема данных. |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
в моем предыдущем посте есть пример кода, реализующего то, что требуется. при добавлении элемента можно также использовать AddItem("строка", reinterpret_cast<TObject*>(somenum))
было КАК? коллекции строк и средства работы с ними в ListBox'е и ComboBox'е совершенно одинаковы. |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
dumb, да я не помню как, поэтому и спрашиваю здесь. Помню только, что было всё очень просто и значение Name видно было в списке, а Value в список не выводилось
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |