Skip to content
Daniel Morais Compartilhe. Aprenda. Evolua.
Aprenda Lazarus Aprenda Lazarus

Blog dedicado a quem quer aprender Lazarus. Dicas, Tutorias e Videos !

  • Links Úteis
  • Lazarus
  • Banco de Dados
  • Componentes
  • ACBr
  • Dicas
  • Canais do Youtube
    • Anderson Fiori
    • Anderson Junior G Da Silva
    • Adriano Lima
    • Alexandre Magno Souza
    • Ari Rodrigues
    • Daniel Morais
    • Daniel Steckler
    • Eder Telhado
    • Fabio Luis Girardi
    • Gilberto – XyberSportGames
    • Humberto Sales
    • Insist Informática
    • JR Escola
    • Luciano Rocha
    • Marcos Douglas B. Santos
    • Pedro Araujo
    • Sergio Falco Daniel
  • Grupos Telegram
    • Lazarus Free Pascal
    • Lazarus BR
Aprenda Lazarus
Aprenda Lazarus

Blog dedicado a quem quer aprender Lazarus. Dicas, Tutorias e Videos !

Função que formata o número de telefone

Daniel Morais,

Algum tempo atrás precisava de uma função para um sistema de delivery, onde você passa como parâmetro o numero de telefone e a função verifica se é de celular ou fixo, se existe DDD ou não, verifica se existe o 9 digito e retorna o numero formatado.

Segue abaixo:

function Tformata_tel(cTexto: string): string;
// Variavel cDDDPadrao é um parametro do meu sistema.
// assim se o operador nao digitar o DDD para agilizar o pedido se nao tiver bina, ele completa com o DDDPadrao automaticamente
begin
   if Length(Trim(ctexto)) = 0 then
      begin
       Result := '';
      end
   else if Length( SoNumero(cTexto) ) = 8 then  // fixo
      begin
         if (strtoint(copy(SoNumero(cTexto),0,1)) >= 6) and (strtoint(copy(SoNumero(cTexto),0,1)) <= 9) then //é um celular
            Result := '('+cDDDPadrao+')'+'9'+copy(SoNumero(cTexto),0,4)+'-'+copy(SoNumero(cTexto),5,4)
         else
            Result := '('+cDDDPadrao+')'+copy(SoNumero(cTexto),0,4)+'-'+copy(SoNumero(cTexto),5,4)
      end
   else if Length( SoNumero(cTexto) ) = 9 then //celular
      Result := '('+cDDDPadrao+')'+copy(SoNumero(cTexto),0,5)+'-'+copy(SoNumero(cTexto),6,4)
   else if Length( SoNumero(cTexto) ) = 10 then  // fixo com ddd
      begin
        if (StrtoInt(copy(SoNumero(cTexto),3,1)) >= 6)  and (StrtoInt(copy(SoNumero(cTexto),3,1)) <= 9) then //celular
           Result := '('+copy(SoNumero(cTexto),0,2)+')'+'9'+copy(SoNumero(cTexto),3,4)+'-'+copy(SoNumero(cTexto),7,4)
        else
           Result := '('+copy(SoNumero(cTexto),0,2)+')'+copy(SoNumero(cTexto),3,4)+'-'+copy(SoNumero(cTexto),7,4)
      end
   else if Length( SoNumero(cTexto) ) = 11 then  //celular com ddd
      Result := '('+copy(SoNumero(cTexto),0,2)+')'+copy(SoNumero(cTexto),3,5)+'-'+copy(SoNumero(cTexto),8,4)

end;

Observe que dentro dela, existe a chamada de outra função onde verifico retorna apenas os números da string “SoNumero”:

function SoNumero(fField: String): String;
var
  I : Byte;
begin
   Result := '';
   for I := 1 To Length(fField) do
       if fField [I] In ['0'..'9'] Then
            Result := Result + fField [I];

end;

Fonte: https://www.teleco.com.br/num.asp

Dicas Funções e Procedimentos formatar telefones

Navegação de Post

Previous post
Next post

ACBr acbrbal acbr lazarus ACBRposprinter atalhos Atualizar atualizar lazarus controle de tanques crosscompile cross compile cross compiling curso dbgrid Delphi Dia do ACBr formularios grid horse impressora de cupom imprimir cupom instalador acbr json Lazarus lazarus android lazarus rede LazReport menu MySQL nivel de tanque Palestras pesquisa pesquisa com varios camois pesquisa dimanica pesquisa incremental pesquisa multipla PostGreSQL Programação RDW rest data were rxdbgrid servidor Servidor Rest dataware TEF Utilitários views

  • Monitora – Desenhe e monitore sua rede doméstica ou escritório. Escrito em Lazarus/FPC.
  • Crie seu projeto Lazarus/fpc a partir das tabelas do seu banco de dados.
  •  IntraWeb no Lazarus – Primeiros Passos
  • Utilizando Interpose Class no Lazarus
  • Lazarus IDE Aprendendo por exemplos
©2026 Aprenda Lazarus | WordPress Theme by SuperbThemes