função não executa
12/03/2013
0
Uso uma biblioteca de funções e na mesma existe a função RemoveAlfa(Retirar caracteres que não sejam numéricos), ao debugar vejo que a mesma não é executada, veja o código:
procedure TFrmCadAluno.BtnSalvarClick(Sender: TObject);
begin
(*só irá cadastrar o Aluno quando for inserção *)
If TForm(self).tag = 0 then
IBQryAlunoEscola.AsString := sEscola;
If not Mensagem('Deseja Gravar o Aluno?') then
Exit;
RemoveAlfa( dbEdtCPF.text );
if not TestaCPF( dbEdtCPF.text ) then
begin
ShowMessage('CPF do Aluno Inválido, Verifique e Tente Novamante!');
PcAluno.ActivePageIndex := 1;
dbEdtCPF.SetFocus;
Exit;
end;
IBQryAluno.Post;
end,
Osmar
Posts
12/03/2013
Daniel Santos
Eu começaria por ai!
12/03/2013
Perivaldo Martins
Uso uma biblioteca de funções e na mesma existe a função RemoveAlfa(Retirar caracteres que não sejam numéricos), ao debugar vejo que a mesma não é executada, veja o código:
procedure TFrmCadAluno.BtnSalvarClick(Sender: TObject);
begin
(*só irá cadastrar o Aluno quando for inserção *)
If TForm(self).tag = 0 then
IBQryAlunoEscola.AsString := sEscola;
If not Mensagem('Deseja Gravar o Aluno?') then
Exit;
RemoveAlfa( dbEdtCPF.text );
if not TestaCPF( dbEdtCPF.text ) then
begin
ShowMessage('CPF do Aluno Inválido, Verifique e Tente Novamante!');
PcAluno.ActivePageIndex := 1;
dbEdtCPF.SetFocus;
Exit;
end;
IBQryAluno.Post;
end,
dbEditCPF.text:= RemoveAlfa( dbEdtCPF.text );
O colega já tentou assim?
Veja se funciona.
Boa sorte e bons códigos!
12/03/2013
Francisco Macário
Bem colocado a reposta acima.
Para usar RemoveAlfa( dbEdtCPF.text ) dessa forma, você deverá criar como procedimento e não função.
E na construção do procedimento use RemoveAlfa(var s:string);
At.
12/03/2013
Osmar
Agradeço a ajuda de todos.
Martins testei sua dica e não funcionou, então percebi que a função só funciona com edit, mas estou usando dbedit e passo para o dbedit conforme o código abaixo, pergunto se os amigos não tem uma função que possa funcionar neste caso.
procedure TFrmCadAluno.FormCreate(Sender: TObject);
begin
dbEdtCPF.Field.EditMask:= '000-000-000-00;1;_';
end,
12/03/2013
Francisco Macário
MeuDataSet.fieldByName('Campo').asString := RemoveAlpha(dbeditCPF.text);
At.
12/03/2013
Osmar
Não sei se você observou, mas no primeiro código que postei preciso retirar os caracteres não numéricos para depois fazer o teste do CPF.
12/03/2013
Francisco Macário
Não sei se você observou, mas no primeiro código que postei preciso retirar os caracteres não numéricos para depois fazer o teste do CPF.
Uma questão, é, você salva a informação formatada?
Se você guarda a informação formatada, faça a chamada de RemoveAlpha dentro da TestarCPF fazendo uso de variáveis internas.
12/03/2013
Osmar
Eu estou tentando salvar apenas os números.
esta é a função que uso.
function RemoveAlfa(Texto: string): string;
var iCont : Integer;
sTexto: string;
begin
sTexto := '';
for iCont := 1 to Length( Texto ) do
begin
if Texto[iCont] in ['0'..'9'] then
sTexto := sTexto + Texto[iCont];
end;
Result := sTexto;
end;
12/03/2013
Osmar
Descobri que várias funções que encontrei na net funcionam desde que retire a máscara que estou passando para o dbedit:
procedure TFrmCadAluno.FormCreate(Sender: TObject);
begin
dbEdtCPF.Field.EditMask:= '000-000-000-00;1;_';
end,
12/03/2013
Perivaldo Martins
Descobri que várias funções que encontrei na net funcionam desde que retire a máscara que estou passando para o dbedit:
procedure TFrmCadAluno.FormCreate(Sender: TObject);
begin
dbEdtCPF.Field.EditMask:= '000-000-000-00;1;_';
end,
Foi lhe perguntado se você salva o CPF formatado no banco, não lembro de se você respondeu, mas independente disso, você poderia usar uma váriável para resolver seu problema.
Suponhamos que seu código de validação do campo CPF esteja no OnExit do DBEdit formatado com a mascara.
procedure TFrmXXX.DBEdtCPFExit(Sender: TObject); var CPF: String; begin CPF := RemoveAlpha(DBEdtCPF.Text); if ValidaCPF(CPF) then ShowMessage('CPF válido!') else ShowMessage('O CPF informado '+ CPF +' é inválido! Tente novamente.'); end;
Boa sorte e bons códigos!
12/03/2013
Osmar
CPF := RemoveAlfa(DBEdtCPF.Text);
if not TestaCPF(CPF) then
begin
ShowMessage('O CPF informado '+ CPF +' é inválido! Verifique e Tente novamente!');
PcAluno.ActivePageIndex := 1;
dbEdtCPF.SetFocus;
exit;
end;
12/03/2013
Osmar
CPF := RemoveAlfa(DBEdtCPF.Text);
if not TestaCPF(CPF) then
begin
ShowMessage('O CPF informado '+ CPF +' é inválido! Verifique e Tente novamente!');
PcAluno.ActivePageIndex := 1;
dbEdtCPF.SetFocus;
exit;
end;
Gostaria de agradecer a todos que tentaram ajudar e que DEUS os abençoe.
12/03/2013
Perivaldo Martins
CPF := RemoveAlfa(DBEdtCPF.Text);
if not TestaCPF(CPF) then
begin
ShowMessage('O CPF informado '+ CPF +' é inválido! Verifique e Tente novamente!');
PcAluno.ActivePageIndex := 1;
dbEdtCPF.SetFocus;
exit;
end;
Gostaria de agradecer a todos que tentaram ajudar e que DEUS os abençoe.
Obrigado pelo feedback, para nós que somos usuários do fórum, tanto os mais recentes quanto os veteranos (2003 - fórum antigo) é sempre um prazer poder ajudar.
Boa sorte e bons códigos!
Clique aqui para fazer login e interagir na Comunidade :)