Filtrar caracter em dois campos ?

Delphi

21/07/2006

E ai Galera Tudo Blz
Bom estou querendo uma ajuda na seguinte situação:
No form eu tenho os campos Tel Fixo e Celular que estão mascarados e eu quero que um deles seja prenchido, para filtrar as mascaras dos campos eu fiz uma function assim:

[b:82ffb8609e]function FiltrarCaract(Source :String; Filter :TCharSet) :String;
var
Idx :Integer;
begin
for Idx := Length(Source) downto 1 do
if (Source[Idx] in Filter) then
Delete(Source, Idx, 1);
Result := Source;[/b:82ffb8609e]

E para chamar a function e uso o seguinte codigo:

[b:82ffb8609e]IF FiltrarCaract(DBCPF.Text, [´/´, ´ ´, ´.´, ´-´]) = ´´ Then
Begin
Showmessage (´Digite numero do CPF´);
DBCPF.SetFocus[/b:82ffb8609e]
Dai tudo beleza se o campo for igual a branco então da a mensagem e foca no campo

Só que eu não estou conseguindo usar esta function para filtrar dois campos juntos como o Tel fixo e tel celular quando eu deixo sem mascara e só eu colocar o codigo:

If Dbfixo = ´ ´ And
Dbcel = ´ ´ Then
Begin
Comando
end;
Então eu gostaria de fazer algo como o que esta acima usando a function filterCaract.

Éra isso ai galera Valeu e um abraço! 8)


Alecsandro Moura

Alecsandro Moura

Curtidas 0

Respostas

Micheus

Micheus

21/07/2006

eu quero que um deles seja prenchido
Significa que basta ter um preenchido para passar a diante? Então veja se seria isto:
procedure Form1.Edit1Exit(Sender :TObject);
begin
  function ValidaFone :boolean;
  Begin
    Result := True;
    If FiltrarCaract(Dbfixo.Text, [´ ´, ´.´, ´-´]) <> ´´ then
      Exit
    Else If FiltrarCaract(Dbcel.Text, [´ ´, ´.´, ´-´]) <> ´´ then
      Exit
    Else
      Result := False;
  End;
Begin
  If Not ValidaFone Then
  Begin
    Showmessage (´Digite numero de telefone´); 
    Dbfixo.SetFocus;
  End;
End;



GOSTEI 0
POSTAR