Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual C++
Перезагрузить страницу Сотни кнопок, одно назначение - читаемый код
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
HellMut HellMut вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.12.2010
По умолчанию Сотни кнопок, одно назначение - читаемый код - 27.12.2010, 03:48

Всем привет. Моя задача такова.

На форме расположены 100 Button'ов, на каждом надпись от "1" до "100". Есть comboBox со списком 1,2... 100. При выборе пункта comboBox, соответствующая кнопка выделяется, меняет задний фон на красный, при этом кнопка выбранная ранее "тухнет", меняет свой цвет на стандартный. Как осуществить не засоряя код?

Самое простое, что приходит в голову действовать через переключатель (если выбран пункт "k", то с ButtonK происходит то-то, то-то), но тогда объем кода линейно зависит от количества кнопок. Чувствую, что универских знаний уже не хватает, в книгах по VC++ ничего подходящего не нашел. Может кто-нибудь посоветует как решить проблему? Спасибо.
Ответить с цитированием
  (#2 (permalink)) Старый
Angel5a Angel5a вне форума
Member
 
Сообщений: 1,213
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.02.2005
По умолчанию 27.12.2010, 17:30

можно проще. текст у вас совпадает с "индексом" кнопки, так что можно сразу искать по имени
Код:
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
TButton *btn = static_cast<TButton*>(Form1->FindChildControl("Button"+ComboBox1->Text));
if(!btn) return;
btn->Enabled = false;
}
Ну и формировать кнопки и записи в списке никто не запрещает динамически ("Динамическое создание VCL компонентов").
Ответить с цитированием
  (#3 (permalink)) Старый
HellMut HellMut вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.12.2010
По умолчанию 30.12.2010, 02:20

Мм, пишу в c++/tcl. Наверно, должно быть что-нибудь типа
Button^ btn = static_cast<Button ^>(Form1->FindChildControl("Button12");

FindChildControl так по-нормальному и не смог воспользоваться.
Ответить с цитированием
  (#4 (permalink)) Старый
Angel5a Angel5a вне форума
Member
 
Сообщений: 1,213
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.02.2005
По умолчанию 30.12.2010, 13:01

Пардон, код выше для Builder'а.
тогда проще будет динамически формировать компоненты, и заносить указатели на них в массив.
Ответить с цитированием
  (#5 (permalink)) Старый
HellMut HellMut вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.12.2010
По умолчанию 30.12.2010, 15:33

Аналога FindChildControl так и не нашел. Создал массив указателей, вроде неплохо. Angel5a, спасибо.
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает одно ядро процессора Alex1988 Любые вопросы от новичков 19 30.04.2012 01:28
Пропало одно ядро Kruiz Любые вопросы от новичков 3 03.02.2012 06:17
мышка! обменять назначение кнопок. les.2007 Любые вопросы от новичков 3 12.01.2012 22:24
Три в одно =) Михаил77 Любые вопросы от новичков 7 20.11.2011 09:37
Одно и тоже? ooo Процессоры 8 29.09.2011 02:01
назначение контактов Mini PCI-E stavmail Любые вопросы от новичков 0 28.12.2010 18:39
Назначение библиотек в программном коде trixtrax Вопросы начинающих программистов 3 12.08.2008 00:21
В материнке Biostar NF520-2A SE назначение выводов звука на переднюю п ilya12 Разное 0 30.05.2008 23:43
Три числа. Одно отрицательное. Emmies Prolog 8 11.06.2007 15:02
Одно решение NP-полных задач Винитарх Prolog 6 16.03.2007 20:55
VisualWorks шрифт в диалогах не читаемый что делать lesha-v Smalltalk 5 24.10.2004 02:32
Назначение обработчика события главного окна из плагина Anonymous Visual C++ 0 19.06.2003 14:44



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов