Показать сообщение отдельно
  #5  
Старый 17.04.2009, 18:20
ciev ciev вне форума
Прохожий
 
Регистрация: 17.04.2009
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Nyctos Kasignete
Во-первых, 10,11,12 — числа, а не цифры... X)
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    '0'..'9': if (Edit1.Text <> '') and (StrToInt(Edit1.Text + Key) > 12) then
                Key := #0;
    #8: {};
  else Key := #0;
  end;
end;

P.S. Это условие (Edit1.Text <> ''), кстати, необязательно проверять... Можно просто
Код:
'0'..'9': if StrToInt(Edit1.Text + Key) > 12 then Key := #0;
Код:
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
var
  ci:integer;
  ix,iy:integer;
  CEdit:TEdit;
begin
  for iy:=1 to 12 do
    for ix:=1 to 12 do
      if Sender is TEdit then
        if (Sender as TEdit)=CEdits[ix,iy] then
          CEdit:=CEdits[ix,iy];
  if (Sender as TEdit)=CEdits[12,12] then
    Exit;
  if not(Key in['0'..'9',#8]) then
    Key:= #0;
  if Key <> #8 then begin
    ci:=CEdit.ComponentIndex;
вот тут как подправить чтоб вводились числа 10,11,12?а то вводятся только цивры от 0 до 9.
Ответить с цитированием