Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ввод цыфр в Edit


Автор: vudu91 1.6.2009, 05:09
Помогите пожалуйста
У меня есть код для едита где при нажатии символов ввод игнорируется а пропускается только числа и запятая 
Код

if ((Key >='0') && (Key <= '9')) {}
else if (Key == 8) {}
else if ((Key == '.') || (Key == ','))
        {
        if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0)
               { Key = 0; }
         else {
       Key=DecimalSeparator;}
        }
else Key = 0;
  
но как сделать чтобы  можно было вводить минус????? как минус пропустить я знаю но как сделать чтобы он вводился только впереди не знаю.. помогите пожалуйста

Автор: dumb 1.6.2009, 05:49
Код

  TEdit *edit = dynamic_cast<TEdit*>(Sender);
  if (isdigit(Key) || !edit) return;
  switch (Key)
  {
    case '+': case '-':
      if (edit->SelStart || edit->Text.Pos(Key))
        Key = 0;
      break;
    case '.': case ',':
      Key = edit->Text.Pos(DecimalSeparator) ? 0 : DecimalSeparator;
    case 8:
      break;
    default : Key = 0;
  }

Автор: Dmi3ev 1.6.2009, 13:50
Код

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
    if ((Key >= '0') && (Key <= '9'))
     return;
    if (Key == DecimalSeparator)
    {
     if ((Edit1->Text).Pos(DecimalSeparator) != 0)
         Key = 0;
        return;
    }
    if (Key == VK_BACK)
     return;
    if (Key == '-' && !Edit1->Text.Length())
    {
        return;
    }
    Key = 0;
}

Автор: vudu91 1.6.2009, 18:46
 smile Dmi3ev, 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)