компонент Checkbox в си++

  • Автор темы aurora87
  • Дата начала
A

aurora87

Гость
#1
помогите пожалуйста с задачей. На форме расположены таблица stringGrid с одним столбцом, в который занесены дни недели, Edit и CheckBox. Перемещаясь по таблице день недели должен заноситься в edit и когда иду по таблице вверх - CheckBox true, когда вниз - false.
Дни недели заношу так StringGrid1->Cells[0][0]="Дни недели";
перемещаюсь по таблице:
в свойстве StringGrid1SelectCell
Edit1->Text=StringGrid1->Cells[0][ARow];

Не получается обработать CheckBox, подскажите, как
 

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#2
эээ
if (чекбокс->чекед){делаем что нам надо?}

Добавлено: Или вам надо получить направление - куда двигается указатель? Вверх или вниз? Тогда при чем тут чекбокс? Вам нужно отлавливать нажатиестрелок - верхней или нижней в OnKeyPress, и в зависимости от того какая стрелка нажата - делать чекбокс чекед или нет написанным выше способом.
ПС.
Вышенаписанное имеет силу только для С++ Билдера(В других С++ будут отличаться названия методов, но суть та же), но судя по всему, вы использете именно его.
 
A

aurora87

Гость
#3
то есть в keypress если kеy=' стрелке вверх', то сheckbox1->checked. в keypress параметр key типа сhar, как ввести символ стрелочки?или можно ввести код клавиши?
 

vital

Больной Компом Детектед
29.01.2006
2 432
40
codeby.net
#4
В событии OnKeyDown - там вместо char - введите код клавиши. Есть предопределенные константы.. типа Key_UP_ARROW.. Ну или как-то так.. Не помню) Гляньте в справке)
 
A

aurora87

Гость
#5
Код:
[b]void __fastcall TForm1::StringGrid1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key = 0x41)
CheckBox1->Checked;
else
CheckBox1->Checked=false;
}[/b]
я пишу так и вообще в итоге не могу перемещаться по столбцу, вообще ничего не происходит. может я что-то не так понимаю
 

hosm

* so what *
18.05.2009
2 442
9
42
Kiev, Ukraine
#7
vital имел ввиду:
if (Key == 0x41)
и дальше
CheckBox1->Checked=true;
else if (Key == код_другой_стрелки)
CheckBox1->Checked=false;