Casas_Decimais


O exemplo a seguir leva um Edit e cinco RadioButtons no Form. 
O usuário pode escolher o número de casas decimais admitidas no Edit através dos RadioButtons:



//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
AnsiString Numero = Edit1->Text;

int casas_decimais;
/*define o número de casas decimais*/
if(RadioButton1->Checked == true) casas_decimais = 1;
if(RadioButton2->Checked == true) casas_decimais = 2;
if(RadioButton3->Checked == true) casas_decimais = 3;
if(RadioButton4->Checked == true) casas_decimais = 4;
if(RadioButton5->Checked == true) casas_decimais = 5;

// retorna o número de caracteres do Text do Edit1 ao pressionar da tecla
int comprimento = Numero.Length();

if(((Key >= '0') && (Key <= '9')) || (Key == ','))
  {
// retorna o número da posição da vírgula
   int posicao_virgula = Numero.Pos(',');
       if((posicao_virgula) &&
       ((comprimento - posicao_virgula) >= casas_decimais))
          Edit1->ReadOnly = true;
       else
          Edit1->ReadOnly = false;
  }
   else if(Key == VK_BACK)
       Edit1->ReadOnly = false;
   else
       Edit1->ReadOnly = true;

}
//---------------------------------------------------------------------------











HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO