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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2013, 01:11   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Деактивация кнопки

Суть проблемы: есть куча спидбаттонов, на которые подгружены картинки. Каждая кнопка отвечает номеру вопроса. Если на вопрос дан ответ - на кнопку подгружается картинка(улыбающийся смайлик, если верно, и грустный, если неверно) и в то же время нужно сделать так, чтобы в дальнейшем при нажатии на эту кнопку ничего не происходило. В то же время, присваивать Enabled в false - нельзя, так как в таком случае картинка становится серой, а это крайне не желательно.

В программе на этот случай прописали -
Код:
sSpeedButton1.OnClick:=nil;
, и все бы ничего, только вот на форме появилась кнопка ОТМЕНА, и по нажатию на нее нужно каким-то образом вернуть действие, которое использовалось по нажатию на кнопку. Как это можно сделать?)
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 11.02.2013, 01:29   #2
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Это можно реализовать многими путями, вот первые 2, которые пришли мне в голову:
1) Свойство Tag кнопки - можно его использовать как статус кнопки(включайте здесь свою фантазию); 0 - можно изменять, 1 - не можно изменять картинку. Когда будете возвращать стандартные значения, то просто пройдитесь по всем кнопкам цыклом и изменяйте значение Tag, наприм. на 0.
2)
Цитата:
Код:
sSpeedButton1.OnClick:=nil;
При нажатии ОТМЕНА цыклом проходите и заново присваивайте каждой кнопке обработчик события(наприм. btn.OnClick:=BtnOnClick).

P.S. Про перебор компонентов(в нашем случае кнопок) легко найдете на форуме.
Подсказка: поле Components у формы. А также ComponentsCount.
Delphi_ProGer вне форума Ответить с цитированием
Старый 11.02.2013, 01:30   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Dennis777
Может, тогда имеет смысл в обработчике события нажатия на кнопку дописать такой вот код:
Код:
If condition then exit;
В свою очередь condition устанавливать в случае, если ответ дали, и сбрасывать (false), если нажали отмена или ответа ещё не дали.
Вадим Мошев вне форума Ответить с цитированием
Старый 11.02.2013, 02:44   #4
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию

Большое спасибо за оперативность!) Очень выручили
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деактивация кнопки Ferun Microsoft Office Access 4 08.04.2012 19:20
Деактивация Checkbox Che Guevara JavaScript, Ajax 4 25.11.2010 12:03
Деактивация окна dardreams Общие вопросы Delphi 4 24.04.2009 11:58
UCOZ: Кнопки кнопки на изображении ReDuX HTML и CSS 19 25.04.2008 02:39
триггерные кнопки и кнопки переключатели в DELPHI MARGO Помощь студентам 3 12.11.2007 17:35