Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна срочная помощь!!! что-то случилось с CheckBox 
V
    Опции темы
Aline
Дата 17.6.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



В дочерней форме, вызывается как ShowModal, есть несколько чекбоксов. Всё нормально работало, но в какой то момент работать перестало. Щёлкая мышью в чекбоксе, чтобы поставить галочку и там начинает моргать эта галочка, тако впечатление как будто залипла кнопка мыши и постоянно щелкает. Что это может быть? Это происходит со всеми чекбоксами на этой форме, на главной форме вроде нормально работает.
Пробовала создавать новый проект - не помогло. Удаление чекбокса и установка нового - тоже. Что делать?
PM MAIL   Вверх
azesmcar
Дата 17.6.2009, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Aline

Может вас в сорсе что-то делаете с ним? OnClick какую нибудь функцию вызываете. Попробуйте создать новый проект и поставить туда CheckBox без каких либо обработчиков. Если история повторяется, проверьте в самом ли деле получает CheckBox событие OnClick?
Проверьте через Spy++ (не помню как он назывался у борланда, но аналог есть) какие сообщения отсылаются CheckBox -у.
После ответов можно будет думать дальше. 

Это сообщение отредактировал(а) azesmcar - 17.6.2009, 10:21
PM   Вверх
Aline
Дата 17.6.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



azesmcar, CheckBox вызывает событие OnClick и крутится в нём, как будто в цикле. Я же говорю всё было нормально и вдруг в какой то момент началось. Даже не знаю в какой момент.
Процедур никаких не вызывает, просто устанавливает флаги. Состояние чекбоксов нигде в программе не меняется, только пользователь может щелкать на них.

Вот пример их обработки:

Код


...................................................................................
void __fastcall TfrmInfo::cbIn4Click(TObject *Sender)
{
  cbIn4->Checked = !cbIn4->Checked;
  flModify = true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmInfo::cbDecClick(TObject *Sender)
{
    cbDec->Checked = !cbDec->Checked;

    if (cbDec->Checked) {
      cbHex->Enabled = false;
      cbHex->Checked = false;
    }
    else cbHex->Enabled  = true;

    flModify = true;

}
//---------------------------------------------------------------------------

void __fastcall TfrmInfo::cbHexClick(TObject *Sender)
{
    cbHex->Checked = !cbHex->Checked;

    if (cbHex->Checked) {
      cbDec->Enabled = false;
      cbDec->Checked = false;
    }
    else cbDec->Enabled  = true;

    flModify = true;
}
//---------------------------------------------------------------------------




Только последние два обработчика взаимоисключают галочки

Это сообщение отредактировал(а) Aline - 17.6.2009, 10:25
PM MAIL   Вверх
azesmcar
Дата 17.6.2009, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



я же говорю, для начала попробуйте без обработчиков. Закомментарьте все, или создайте новый проект и проверьте на нем.
...
Цитата

cbDec->Checked = !cbDec->Checked;

а это для чего? Он это автоматически делает, зачем вам еще это нужно? А может это и есть причина? Тут может быть вызвана бесконечная рекурсия. (хотя немного нелогично, но проверить стоит).

Это сообщение отредактировал(а) azesmcar - 17.6.2009, 10:36
PM   Вверх
Aline
Дата 17.6.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



azesmcar, ну а как по другому галочку поставить или снять?

Это сообщение отредактировал(а) Aline - 17.6.2009, 10:36
PM MAIL   Вверх
azesmcar
Дата 17.6.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(Aline @  17.6.2009,  10:36 Найти цитируемый пост)
azesmcar, ну а как по другому галочку поставить или снять?

Он это сам сделает. Уберите эту строку вообще.
PM   Вверх
Aline
Дата 17.6.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



А Вы правы....убрала обработчик и работает. А как же до этого работало?
PM MAIL   Вверх
azesmcar
Дата 17.6.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Представьте такой сценарий.
При смене состояния CheckBox-а вызывается функция, в ней вы меняете состояние CheckBox-а опять, в следствии чего - снова вызывается функция. Я не уверен, нехорошо знаком с билдером, но теоретическо возможно. smile 
Немного нелогично что при этом вызывается обработчик OnClick.

Добавлено через 1 минуту и 3 секунды
Цитата(Aline @  17.6.2009,  10:37 Найти цитируемый пост)
А как же до этого работало? 

 smile 
это фантастика smile 

Это сообщение отредактировал(а) azesmcar - 17.6.2009, 10:39
PM   Вверх
Aline
Дата 17.6.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



azesmcar, мне почему то казалось, что мы всегда так делали в программах. Хотя может быть я ошибаюсь. Причем оно реально работало smile

Вообщем убрала я эти строки и всё в порядке. Спасибо за помощь smile
PM MAIL   Вверх
azesmcar
Дата 17.6.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Aline

Пожалуйста. Удачи.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0733 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.