Niechciane litery

0

Witam!
Mam do wszystkich pytanie: jak zrobić aby w edicie możliwe było wpisywanie wyłącznie cyfr, kropki i nawiasów.
Dzięki za pomoc!!!

0

Można to zrobić na kilka sposobów:

  1. napisać odpowiednią maskę
  2. obsłużyć zdarzenie OnChange
  3. jeszcze pewnie na paręset innych sposobów
    Na prszykład przedstawię sposób drugi:
Procedure Edit1Change(Sender: TObject);
var i: integer;
begin
  for i:=Length(Edit1.Text) downto 1 do
    if ((Edit1.Text[i]<'0') or (Edit1.Text[i]>'9')) and (Edit1.Text[i]<>'(') and (Edit1.Text[i]<>')') and (Edit1.Text[i]<>'.')) then Delete (Edit1.Text, i, 1);
  end;

To powinno starczyć. Pisane z pamięci, więc gdzieś jakiś błąd może być...

0

w OnKeyDown zrob sprawdzanie przyciskanych klawiszy. :-)

//Zostalem uprzedzony

0

Albo wykorzystanie komunikatów, albo łatwiej trochę sprawdzać w Evencie ONKEYDOWN czy wpisane w Edicie znaki to te co chcesz a jak nie to Delejt :) jak to zacząłem pisać to daje głowę że nie było tych wyżej :/

0

Tak, ale nie jest to tak dobre rozwiązanie. Załóżmy, że ktoś chce wkleić jakiś kawałek tekstu. Wtedy albo to nie zadziała, albo uniemożliwi wklejenie, co jest dość niewygodne.

0

A sprawdzanie w OnKeyDown tak nie zrobi. Czy "DE BEŚCIARSKIE" rozwiązanie, ale faktiko przy wklejaniu nie obsłuży OnKeyDown (jeśli wklejałeś myszką) no to jeszcze OnChange najlepiej oprócz OnKeyDown

1 użytkowników online, w tym zalogowanych: 0, gości: 1