CheckBox и свойство checked
Люди добрые! Объясните пожалуйста проблему: КАКОГО ... (нехорошего) программное изменение свойства CHECKED в CheckBox вызывает событие OnClick?
САМООТВЕТ: гыгыгы и троекратное хрюканье
.... а вот ежели поместить CheckBox в GroupBox, то событие OnClick при программном изменении Checked НЕ ВОЗНИКАЕТ!!!
САМООТВЕТ: гыгыгы и троекратное хрюканье
.... а вот ежели поместить CheckBox в GroupBox, то событие OnClick при программном изменении Checked НЕ ВОЗНИКАЕТ!!!
нифига! всё равно возникает :(
нифига! всё равно возникает :(
И в связи с этим ГЛАВНЫЙ ВОПРОС: как сделать так, чтобы событие OnClick возникало ИСКЛЮЧИТЕЛЬНО ПРИ РЕАКЦИИ ПОЛЗАТЕЛЯ (то есть когда он кликает мышью, тибо нажимает пробел)
И в связи с этим ГЛАВНЫЙ ВОПРОС: как сделать так, чтобы событие OnClick возникало ИСКЛЮЧИТЕЛЬНО ПРИ РЕАКЦИИ ПОЛЗАТЕЛЯ (то есть когда он кликает мышью, тибо нажимает пробел)
Да и пусть возникает. При установке "чекед" программным способом установи ещё и флаг "не реагировать", а при обработке "онклик" сними этот флаг и ничего не делай. Если же юзер щёлкнет - флаг "не реагировать" не установлен - "онклик" отрабатывает по полной программе.
Да и пусть возникает. При установке "чекед" программным способом установи ещё и флаг "не реагировать", а при обработке "онклик" сними этот флаг и ничего не делай. Если же юзер щёлкнет - флаг "не реагировать" не установлен - "онклик" отрабатывает по полной программе.
я думал, есть что-то цивилизованное :D :(
я думал, есть что-то цивилизованное :D :(
- Папа, правда, что VCL цивилизованная?
- Нет, сынок, это фантастика!
:D :D :D
- Папа, правда, что VCL цивилизованная?
- Нет, сынок, это фантастика!
:D :D :D
гыгыгы! ... а между тем предложенный тобой способ неожиданно привнёс положительные удобства в мой код.... Спасибо за идею!
Perform(BM_SETCHECK, 1, 0);
//снять чек
Perform(BM_SETCHECK, 0, 0);
//усатновить чек
Perform(BM_SETCHECK, 1, 0);
//снять чек
Perform(BM_SETCHECK, 0, 0);
Что вот это, что клик пользователя система интерпретирует аналогично
я думал, есть что-то цивилизованное :D :(
Профессионаааалы :D
Когда меняешь програмно, и хочешь игнорить вызов OnClick, пишем
CheckBox1->Checked = !CheckBox1->Checked;
CheckBox1->OnClick = CheckBox1Click;
И не надо гнать на VCL!!! Он хороший... иногда :D