Problemas em capturar valor de MaskEdit.

11/02/2006

0

Boa Noite a todos!
Um aparte do codigo que tenho é assim:
ModuloDados.CDS_TabClientes.FieldByName(´RG´).AsInteger:=StrToInt(MaskEdit2.Text);
ModuloDados.CDS_TabClientes.FieldByName(´CPF´).AsInteger:=StrToInt(MaskEdit3.text);
Isso e no botão Inserir.

Project Sistema.exe raised exception class EConvertError whit message
´33.456.789-0´ is not a valid integer value.´ Process stopped. Use Step or Run to continue.

O EditMask esta formatado com a mascara correspondente acima, sei que o erro e na conversão, mas não sei como resolver! :oops:

Alguem pode me ajudar???


Marcelo_j.

Marcelo_j.

Responder

Posts

11/02/2006

Marco Salles

amigo , este problema é classico e geralmente o a causa e defido a definição da mascara do MaskEdit

como voce a definiu ???


Responder

11/02/2006

Marcelo_j.

Na propriedade EditMask = 00.000.000-0;1;_ do MaskEditRG, e na propriedade EditMask do MaskEditCPF=!000.000.000-00;1;_.

Obrigado.


Responder

11/02/2006

Leandroaoa

ei amigo vc esta tentando passar um campo string para um campos integer no campo integer so aceita numero inteiros
troque os asinteger por asstring;
verifique na sua tabela o tipo deste campos ok

ModuloDados.CDS_TabClientes.FieldByName(´RG´).AsString:=MaskEdit2.Text;
ModuloDados.CDS_TabClientes.FieldByName(´CPF´).AsString:=MaskEdit3.text;


Responder

11/02/2006

Marcelo_j.

Obrigado pela dica.
:lol: Mas colega na minha tabela o campo Rg é Integer, o Campo Cpf é Integer e tenho um campo como datanascimento que é Date.
No campo data do nascimento esta asim: :roll:
ModuloDados.TabCadClientes.FildByName(´DataNascimento´).AsDate:=StrToDateTime(MaskEdit*.text);
este não da o problema de conversão.
Sou novato, e aprendi que toda entrada que o usuário digita no edit e STRING... ou aprendi errado? :oops:

Obrigado pela atenção.


Responder

11/02/2006

Marco Salles

o final 1 da sua mascara significa : ´Salvar Literais´ .. Logo o valor de MaskEdit sera 33.456.789-0 que não é um inteiro
Ao colocar o Final Zero na mascar do MaskEdit o Valor de MaskEditText sera 334567890 que pode ser transformado em um inteiro atraves da função do StrtoInt(MaskEdit1.text)

eu recomendaria isto

 EditMask = 00.000.000-0;0;_ do MaskEditRG, e na propriedade EditMask do MaskEditCPF=!000.000.000-00;0;_. 



Responder

11/02/2006

Marco Salles

eu alem disso eu acho que

ModuloDados.CDS_TabClientes.FieldByName(´RG´).AsString:=MaskEdit2.Text; ModuloDados.CDS_TabClientes.FieldByName(´CPF´).AsString:=MaskEdit3.text;


Mas colega na minha tabela o campo Rg é Integer, o Campo Cpf é Integer e tenho um campo como datanascimento que é Date.


[b:9bc4b67dbe]se quiser fazer como o LeandroAoa sugeriu , tb vai ter que trocar o final da mascara..De qualquer maneira[/b:9bc4b67dbe]

ModuloDados.CDS_TabClientes.FieldByName(´RG´).AsString:=MaskEdit2.Text; //
no seu caso funciona se MaskEdit não conter literais.. etc...
aparentemente se esta trabalhando com string , mas na hora de validar o valor do campo ele ira dar erro se maskEdit1.text , não puder ser convertido...

Enfim , tem-se duas opçoes
ModuloDados.CDS_TabClientes.FieldByName(´RG´).AsString:=MaskEdit2.Text;
ModuloDados.CDS_TabClientes.FieldByName(´RG´).Asinteger:=strtoint(MaskEdit2.Text);
[b:9bc4b67dbe]Em ambas as situaçoes o valor de maskEdit é um valor que pode ser convertido para inteiro[/b:9bc4b67dbe]


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar