| Олега | 
| Отправлено: 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];//
 | 
|  |