![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
stringgrid delphi почему не работает backspace как прописать? [D7]
damtakon © (2013-05-14 10:59:00)как внести эту клавишу 8?
"Добрый Сок" (2013-05-14 12:29:00) [1]
> turbouser ©
Злой ты - чел так и не поймет ведь, препод завалит одним вопросом
А я - добрый :) и сок еще :))
damtakon (2013-05-14 12:22:00) [2]спасибо теперь работает
turbouser (2013-05-14 12:14:00) [3]т.е.
if (not(Key in ['0' .. '9', #8, #46])) or ((StringGrid1.Col = 1) and (StringGrid1.Row = 1)) then
begin
Key := #0;
exit;
end;
turbouser (2013-05-14 12:13:00) [4]
if (not(Key in ['0' .. '9'])) or ((StringGrid1.Col = 1) and (StringGrid1.Row = 1)) then
begin
Key := #0;
exit;
end;
"Добрый Сок" (2013-05-14 12:08:00) [5]правильно,
> if (Key < '0') or (Key > '9') then
> Key := #0;
тут написано
если
клавиша меньше нуля
ИЛИ
клавиша больше девяти
тогда
обнулить нажатие (вот и ничего и не происходило)
Способ1
надо добавить проверку на backspace
если
клавиша меньше нуля
ИЛИ
клавиша больше девяти
тогда
если
клавиша не backspace
тогда
обнулить нажатие
Код клавиши backspace - #8; // Key = #8;
--------
Способ2
А лучше переписать наоборот
если НЕ
(клавиша больше нуля
И
клавиша меньше девяти)
ИЛИ клавиша backspace
тогда
обнулить нажатие
--------
Способ3
Еще лучше - давать вводить все.
А уже во время вычислений проверить цифры там или нет,
если нет попросить исправить
damtakon (2013-05-14 11:45:00) [6]после того как с кода убрал буквы в таблицу теперь вводить можно но надо уцбрать их возможность вводу ну и чтобы backspace тоже работал при этом
damtakon (2013-05-14 11:44:00) [7]помойму этот код не дает написание буквенных символов точно уже не помню
damtakon (2013-05-14 11:42:00) [8]убрал из кода это вроде работать стала кнопка
"Добрый Сок" (2013-05-14 11:42:00) [9]для начала объясните, что делает этот код
когда это сможете, тогда станет очевидно что надо дописать/поправить
damtakon (2013-05-14 11:40:00) [10]и что делать чтобы заработало?
"Добрый Сок" (2013-05-14 11:36:00) [11]медитировать над кодом
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if (StringGrid1.Col = 1) and (StringGrid1.Row = 1) then
begin
Key := #0;
exit;
end;
if (Key < '0') or (Key > '9') then
Key := #0;
end;
damtakon (2013-05-14 11:29:00) [12]http://rghost.ru/45986388вот исходник
"Добрый Сок" (2013-05-14 11:27:00) [13]удаляется.
Последний символ, если ячейка в режиме редактирования
Все содержимое, если ячейка не в редактировании, но выбрана.
Возможно проблема в доп. коде, который написан уже вами
пример неработающего - в студию
brother (2013-05-14 11:25:00) [14]что делали с гридом?, ибо этого не может быть...
damtakon (2013-05-14 11:08:00) [15]когда вводишь ячейки какое либо число последний символ не удоляется при помощи backspace при нажании на эжту кнопку просто не чего не происходит
"Добрый Сок" (2013-05-14 11:04:00) [16]что значит не работает?
+[goEditing] и при нажатии на нее стирается символ слева в редактируемой ячейке.
А какие у вас ожидания? Ожидаете что она пойдет устроится работать экскаваторщиком? :)