![]() |
|
![]() ![]() ![]() |
|
zarden |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2006 Репутация: нет Всего: нет |
Люди добрые подскажите можно ли сделать так, чтобы строкам компонента например ComboBox сопоставлялиь элементы одномерного массива.
Т. е , допустим при выборе пользователем первой строки ComboBox в какое нибудь выражение, невидимое для пользователя, подставлялся нулевой элемент массива, при выборе второй строки - первый элемент и т.д. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
Думаю, тебе следует использовать свойство ItemIndex...
если выбрана первая строка, то ComboBox->ItemIndex == 0; если вторая, то ComboBox->ItemIndex == 1; и так далее... -------------------- СУВ, Partizan. |
|||
|
||||
zarden |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2006 Репутация: нет Всего: нет |
void __fastcall TForm1::Button1Click(TObject *Sender)
{ int A[2]; A[0] = 10; A[1] = 20; if (ComboBox1->ItemIndex==0) Edit1->Text = IntToStr(A[1]); Смысл вопроса заключается в том что: нельзя ли например уйти от того чтобы при каждом варианте выбора строки комбобокса расписывать оператором if какой именно элемент массива записывается в Edit. Грубо говоря хотелось бы чтобы код выглядел примерно так: If(ComboBox1->ItemIndex==i) Edit1->Text = IntToStr(A[i]); т.е чтобы номерам строк однозначно соответствовали такие же номера элементов массива: нулевой строке - нулевой элемент, первой строке - первый и т.д. |
|||
|
||||
TIGERоX |
|
|||
начинающий... ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.9.2005 Репутация: 1 Всего: 1 |
|
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
если размерность массива совпадает с количеством строк, то можно просто ограничиться следующим:
З.ы. не забываем, что индексация в массиве также начинается с 0.... в Вашем же коде при выборе первой строки в Edit выведется 20... в приведённом мной - 10... З.з.ы. но в общем случае(т.е. если размерность массива не обязательно совпадает с кол-вом строк), делайте как предлагает TIGERоX З.з.ы. Не забывайте, что если ни один айтем не выбран(такое может быть например при запуске приложения), то ItemIndex содержит -1 -------------------- СУВ, Partizan. |
|||
|
||||
zarden |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2006 Репутация: нет Всего: нет |
Огромное спасибо Partizan и TIGERоX. Сделал как вы предложили и все пошло. Тока вот не могу понять одного в случае когда кол-во строк не совпадает с кол-вом элементов массива для чего служит двойной &&?
Буду очень признателен если ответите на этот вопрос |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
в примере TIGERоX'a подразумевается что количество строк в комбобоксе больше, чем количество строк в массиве...
if( ComboBox1->ItemIndex<cols && ComboBox1->ItemIndex>=0) таким образом проверяется во первых: if не выходит ли индекс выбранного айтема за грани массива...//ComboBox1->ItemIndex<cols и && вообще выбран хоть один айтем ComboBox1->ItemIndex>=0(в случае если не выбран, АйтемИндекс==-1) так вот оператор && представляет собой не что иное как т.н. "логическое и" -------------------- СУВ, Partizan. |
|||
|
||||
zarden |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2006 Репутация: нет Всего: нет |
Спасибо за разъяснения. Меня вот интересует как наиболее качественно подойти к самостоятельному изучению билдера с++? Может книгу какую посоветуете? Я вот приобрел издание Архангельского. Классная книга, но некоторые вещи просто непонятны. Не могу нащупать необходимый мне порядок изучения материалов
|
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
сначала как следует изучи азы....синтаксис хотя бы....
возьми книжку просто по С++ и пиши консольные приложения...ознакомься для начала хотя бы со структурным программированием... -------------------- СУВ, Partizan. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ 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. |