função não executa
Amigos,
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,
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
Curtidas 0
Respostas
Daniel Santos
12/03/2013
Bom, pelo jeito seu Mensagem esta retornando false direto, por isso nem desce!
Eu começaria por ai!
Eu começaria por ai!
GOSTEI 0
Perivaldo Martins
12/03/2013
Amigos,
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,
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!
GOSTEI 0
Francisco Macário
12/03/2013
Olá.
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.
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.
GOSTEI 0
Osmar
12/03/2013
Amigos,
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,
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,
GOSTEI 0
Francisco Macário
12/03/2013
Passe o retorno da função direto para campo no DATASET (se estiver em modo de edição).
MeuDataSet.fieldByName('Campo').asString := RemoveAlpha(dbeditCPF.text);
At.
MeuDataSet.fieldByName('Campo').asString := RemoveAlpha(dbeditCPF.text);
At.
GOSTEI 0
Osmar
12/03/2013
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.
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.
GOSTEI 0
Francisco Macário
12/03/2013
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.
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.
GOSTEI 0
Osmar
12/03/2013
Macário,
Não entendi bem, daria para você fazer o código?
Não entendi bem, daria para você fazer o código?
GOSTEI 0
Osmar
12/03/2013
Macário,
Eu estou tentando salvar apenas os números.
Eu estou tentando salvar apenas os números.
GOSTEI 0
Osmar
12/03/2013
Macário,
Eu estou tentando salvar apenas os números.
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;
GOSTEI 0
Osmar
12/03/2013
Amigos,
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,
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,
GOSTEI 0
Perivaldo Martins
12/03/2013
Amigos,
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,
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!
GOSTEI 0
Osmar
12/03/2013
Beleza Martins, agora funcionou, veja como ficou:
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;
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;
GOSTEI 0
Osmar
12/03/2013
Beleza Martins, agora funcionou, veja como ficou:
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;
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.
GOSTEI 0
Perivaldo Martins
12/03/2013
Beleza Martins, agora funcionou, veja como ficou:
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;
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!
GOSTEI 0
Francisco Macário
12/03/2013
Amém.
E sucesso Osmar.
E sucesso Osmar.
GOSTEI 0