@lukasz_p92 - najpierw pasowało by sprawdzić kody klawiszy, zanim weźmie się za pisanie kodu i jego testowanie; Mocno uogólniając, wszystkie kody od 0
do 127
są uniwersalne, zawarte w zbiorze znaków ASCII; Kody znaków odpowiadające cyfrom znajdują się w zakresie od 48
(cyfra 0
) do 57
(cyfra 9
); Teraz można już przystąpić do pisania kodu;
Można wybrać zdarzenie OnKeyPress
, bo znak BS
(backspace
) jest przez to zdarzenie obsługiwany - DEL
również; Ja jednak proponuję zdarzenie OnKeyDown
i skorzystanie ze stałych VK_BACK
(lub jeśli dostępny to VK_BACKSPACE
), VK_DELETE
i VK_0
, ze względu na czytelność; W argumencie dostaje się od razu kod znaku, więc nie trzeba kombinować i zaciemniać kodu gołymi numerkami:
if Key in [VK_BACK{SPACE}, VK_DELETE] then
Key := VK_0;
Jeśli jednak wolisz podawać gołe liczby w OnKeyPress
z prefiksem #
to patrz na zapis tych liczb; Nie pamiętam jak to wygląda w Delphi, jednak pod FPC możliwe jest podanie kodu znaku w czterech systemach liczbowych:
Key := #48; // decymalny
Key := #$30; // heksadecymalny
Key := #&60; // oktalny
Key := #%110000; // binarny
W Delphi trzy pierwsze na pewno są dozwolone, z binarnym nie pamiętam, a jak jest w nowym - nie wiem, nie używam; W każdym razie wybierz sobie jeden system liczbowy i jego używaj; Póki co, na początek polecam dziesiętny, bo nie ma prefiksów i nie będzie się myliło;
PS: Highlighter kodu nie trawi już oktalnego... :]