Олега |
Отправлено: 03.11.2003, 23:03 |
|
Не зарегистрирован
|
Что бы она вызывалсь, когда какаялибо кнопка нажималась на ней... И мне ещё надо знать какая то кнопка! Пмомщи прошу у вас! |
|
exp |
Отправлено: 04.11.2003, 01:12 |
|
Мастер участка
Группа: Участник
Сообщений: 304
|
Простенькая процедура, блокирующая ввод любых символов, кроме цифр 0..9
Насчет распознавания нажатой кнопки, думаю, нужно узнавать код кнопки а потом сравнивать с ASCII.
CODE |
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &Key)
{
AnsiString str=StringGrid1->Cells[StringGrid1->Col][StringGrid1->Row];// текущее содержание ячейки
switch (Key) // Кеу — значение нажатой кнопки
{
case '1':{str+='1';break;} // допустимые для ввода значения Кеу
case '2':{str+='2';break;} // прибавляются к содержанию ячейки
case '3':{str+='3';break;} //
case '4':{str+='4';break;} //
case '5':{str+='5';break;} //
case '6':{str+='6';break;} //
case '7':{str+='7';break;} //
case '8':{str+='8';break;} //
case '9':{str+='9';break;} //
case '0':{str+='0';break;} //
default :{break;} // если введена не цифра, то ничего не надо добавлять в str
}
StringGrid1->Cells[StringGrid1->Col][StringGrid1->Row]=str; // перезапишем новое строковое "число" в ту же ячейку.
} |
|
|
Nimble |
Отправлено: 04.11.2003, 11:41 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 34
|
Это прокатит если курсор в конце строки, а если нет? Процедура наверняка будет добавлять символ в конец строки |
|
Asher |
Отправлено: 04.11.2003, 13:25 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Да не надо вообще никого никуда добавлять.
Если символ недопустимый, то в указанной выше процедуре делаешь Key = 0; и все. N/t/ просто не пропускаешь его дальше.
а полученную строку с учетом всех там del, bs, и ходьбы курсором прочтешь в StrinGrid1->Cells[ACol][ARow];//
|
|