Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с событиями и строками, есть код, но не ясно с событием 
:(
    Опции темы
Des
Дата 9.8.2005, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день. Задача такова: есть форма Form4 на ней 16 CheckBox, из этой формы вызывается модальная форма, на которой находится StringGrid. анализируем указанные CheckBox и формируем AnsiString строку из 1 и 0, потом анализируя строку формируем на каждую пару значений строку в StringGrid, код который все это делает размещен в событии OnShow, проблема в том, что если выйти из модальной формы, изменить указанные ChekBox, то на StringGrid это не отражается, т.е. если ChekBox отключен, он все равно попадает в возможные значения
код следующий

AnsiString KodChekovConnectov;
KodChekovConnectov="";
//16 это кол-во чеков
if(Form4->CheckBox1->Checked==true)KodChekovConnectov=KodChekovConnectov+"1";
else KodChekovConnectov=KodChekovConnectov+"0";
if(Form4->CheckBox2->Checked==true)KodChekovConnectov=KodChekovConnectov+"1";
else KodChekovConnectov=KodChekovConnectov+"0";
................. тут код однотипен
if(Form4->CheckBox16->Checked==true)KodChekovConnectov=KodChekovConnectov+"1";
else KodChekovConnectov=KodChekovConnectov+"0";
Label1->Caption=KodChekovConnectov;
обнуляем стрин грид
StringGrid1->RowCount=0;
//теперь анализируем кол-во чеков и создаем на каждую пару
//по строчке в стринг грид
for (int t=1;t<16;t++)
{
if (StrToInt(KodChekovConnectov[t])==1)
{
for (int y=t+1;y<16;y++)
{
if (StrToInt(KodChekovConnectov[y])==1)
{ Label1->Caption=KodChekovConnectov;
// здесь надо создать строчку в стринг гриде с началом в т
//концом в y, но сначала надо проверить може такая строка есть

for (int f=0;f<StringGrid1->RowCount;f++)
{
if (StringGrid1->Cells[0][f]==IntToStr(y)&& StringGrid1->Cells[1][f]==IntToStr(t))
{
flagstrok=flagstrok+1;
};

};
if (flagstrok==0){

StringGrid1->RowCount=StringGrid1->RowCount+1;
StringGrid1->Cells [0][kolStrok]=IntToStr(t);
StringGrid1->Cells [1][kolStrok]=IntToStr(y);
kolStrok=kolStrok+1;
}
else
{
flagstrok=0;
continue;
};



};

};



};
};

так вот в чем проблема? создается впечатление, что StringGrid не очищается или chekbox не снимает с себя флажки

PM MAIL   Вверх
Mal Hack
Дата 9.8.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Я зачем юзать OnShow. В тот момент когда ты вызываешь модальную форму ты и производи эти операции.

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

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

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

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

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


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

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


 




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


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

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