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