Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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] и при нажатии на нее стирается символ слева в редактируемой ячейке.

А какие у вас ожидания? Ожидаете что она пойдет устроится работать экскаваторщиком? :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо