Edit - kontrola wpisywanych znaków

0

Witam,

chcę zrobić Edita w którym można wpisac jedynie znaki : 0, 1, przecinek, backspace.

Realizuje to poniższy kod:

 
  if (TEdit(Sender).Text ='') then
  begin
    if not (ord(key) in [49,48]) then
      key:=#0;
  end
  else
  begin
   if not ((ord(key) in [49,48,44 ]) or (ord(key) = 8)) then
    key:=#0;
  end;

Problem mam w kontroli kiedy jaki znak może zostać wpisany.
Na pierwszym miejscu może zostać wpisana liczba 0 lub 1.
Na kolejnym przecinek lub backspace i tak w kółko tzn 1,0,1,0,1.

Jak mogę to napisać?

3

Nie wiem czy dobrze rozumiem chodzi o to że mogą być tylko cyfry 0 lub 1 oddzielone przecinkami?

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  bHandled: Boolean;
begin
  bHandled:= not (((Length(TEdit(Sender).Text) mod 2 = 0) and (Key in ['0','1', #8]))
    or ((Length(TEdit(Sender).Text) mod 2 <>  0) and (Key in [',', #8])));
  if bHandled then
    Key:= #0;
end;

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