@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:
Kopiuj
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:
Kopiuj
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... :]