Função UpperCase para caracteres acentuados

Vamos ver uma função que converte os caracteres acentuados em maíuscula.

Por | @jonathanlamimkt Programação
A função UpperCase do Delphi não converte os caracteres acentuados para maiúscula, então em uma busca pela internet encontrei a função que segue abaixo, ela faz esse trabalho e poupa a dor de cabeça.

Para vê-la em funcionamento, inicie um novo aplicativo e insira os seguintes componentes:

1 Edit
1 Button
1 Label


Antes de começar a colocar código nos componentes, vamos inserir a função abaixo dentro do código-fonte do aplicativo. Declare-a logo após as linhas

implementation

{$R *.dfm}


Função para conversão



function UpperCase2(const S: string): string;
var
  Ch: Char;
  L: Integer;
  Source, Dest: PChar;
begin
  L := Length(S);
  SetLength(Result, L);
  Source := Pointer(S);
  Dest := Pointer(Result);
  while L <> 0 do
  begin
    Ch := Source^;
    if (Ch >= 'a') and (Ch <= 'z') then Dec(Ch, 32);
    if (Ch >= 'á') and (Ch <= 'ú') then Dec(Ch, 32);
    if (Ch >= 'ã') and (Ch <= 'õ') then Dec(Ch, 32);
    if (Ch >= 'ä') and (Ch <= 'ü') then Dec(Ch, 32);
    if (Ch >= 'à') and (Ch <= 'ù') then Dec(Ch, 32);
    if (Ch >= 'â') and (Ch <= 'û') then Dec(Ch, 32);
    Dest^ := Ch;
    Inc(Source);
    Inc(Dest);
    Dec(L);
  end;
end;


Após declarar a função responsável por converter os caracteres, vamos inserir o código responsável por chamar essa função.

No evento OnClick do componente Button, coloque o seguinte código:

label1.Caption:= UpperCase2(edit1.Text);


Entendendo o Código



UpperCase2(edit1.text) : UpperCase2 é a função responsável por fazer a conversão e edit1.text é o componente que contém o texto/caracter a ser convertido.

Para verem essa função em ação, baixe o arquivo anexado a este artigo.

Até o próximo artigo caros leitores!!!

Ops, já ia esquecendo, agora você pode me encontrar no Twitter, http://www.twitter.com/jlamim, espero você lá.

Mais sobre: delphi, uppercase, conversão
Share Tweet
DESTAQUESMais compartilhados
Comentários
Continue lendo
    • ASSINE NOSSA NEWSLETTER

      As melhores publicações no
      seu e-mail

    • Preencha para confirmar