helldanger1
GForum VIP
- Entrou
- Ago 1, 2007
- Mensagens
- 29,631
- Gostos Recebidos
- 1
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;
}
//---------------------------------------------------------------------------
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;
}
//---------------------------------------------------------------------------