Problemas em capturar valor de MaskEdit.
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???
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.
Curtidas 0
Respostas
Marco Salles
11/02/2006
amigo , este problema é classico e geralmente o a causa e defido a definição da mascara do MaskEdit
como voce a definiu ???
como voce a definiu ???
GOSTEI 0
Marcelo_j.
11/02/2006
Na propriedade EditMask = 00.000.000-0;1;_ do MaskEditRG, e na propriedade EditMask do MaskEditCPF=!000.000.000-00;1;_.
Obrigado.
Obrigado.
GOSTEI 0
Leandroaoa
11/02/2006
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;
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;
GOSTEI 0
Marcelo_j.
11/02/2006
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.
: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.
GOSTEI 0
Marco Salles
11/02/2006
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
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;_.
GOSTEI 0
Marco Salles
11/02/2006
eu alem disso eu acho que
[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
[b:9bc4b67dbe]Em ambas as situaçoes o valor de maskEdit é um valor que pode ser convertido para inteiro[/b:9bc4b67dbe]
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);
GOSTEI 0