Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bocute

[Resolvido] Primeira Letra de Palavras em Caixa Alta

Recommended Posts

As funções abaixo deixam os textos e palavras passadas com a primeira letra maiúscula e o restante minúsculo. Espero que ajude alguém.

 

Exemplo: Esse é Um Exemplo da Função.

 

function NaoAchaPreposicao(Palavra: String): Boolean;
function AchaParenteses(Palavra: String): Boolean;
function UpperNome(const Nome: String): String;
function ToLower(Text: String): String;
function ToUpper(Text: String): String;

function TDTMCadEmpresas.NaoAchaPreposicao(Palavra: String): Boolean;
var
    y : Integer;
begin
    Result := True;
    for y := 0 to 4 do
    if Trim(Palavra) = lista[y] then
        Result := False;
end;

function TDTMCadEmpresas.AchaParenteses(Palavra: String): Boolean;
var
    y : Integer;
begin
    Result := false;
    if Length(Copy(Palavra, 1, Length(Palavra))) = 4 then
        Result := true;
end;

function TDTMCadEmpresas.UpperNome(const Nome: String): String;
begin
    Result := Trim(ToLower(Nome));
    lista[0] := 'das'; lista[1] := 'dos' ;
    lista[2] := 'de'; lista[3] := 'do' ;
    lista[4] := 'da';
    Result :=  ToUpper(Result[1]) + Copy(Result, 2, Length(Result));
    for x := 2 to Length(Result) do
    begin
        if Result[x] = #32 then
            if Copy(Result,x+1,2) <> 'e ' then
            begin
                if NaoAchaPreposicao(Copy(Result,x+1,3)) then
                begin
                    Result := Copy(Result, 1, x) +
                              ToUpper(Result[x+1]) +
                              Copy(Result, x+2, Length(Result));
                end;
            end;
        if Result[x] = '(' then
            if Copy(Result,x+1,2) <> 'e ' then
            begin
                if NaoAchaPreposicao(Copy(Result,x+1,3)) then
                if (Copy(Result, x+3,1) = ')') then
                begin
                    Result := Copy(Result, 1, x) +
                              ToUpper(Result[x+1]) + UPCase(Result[x+2]) +
                              Copy(Result, x+3, Length(Result));
                end
                else
                    Result := Copy(Result, 1, x) +
                              ToUpper(Result[x+1]) +
                              Copy(Result, x+2, Length(Result));

            end;

    end;
end;

function TDTMCadEmpresas.ToLower(Text: String): String;
var
    Ind: Integer;
const
    LW = 'áâãàéêíóôõúüûçñ';
    UP = 'ÁÂÃÀÉÊÍÓÔÕÚÜÛÇÑ';
begin
    Result := '';
    for Ind := 1 to Length(Text) do
        if Pos(Copy(Text, Ind, 1), UP) > 0 then
            Result := Result + Copy(LW, Pos(Copy(Text, Ind, 1), UP), 1)
        else
            Result := Result + LowerCase(Copy(Text, Ind, 1));
end;

function TDTMCadEmpresas.ToUpper(Text: String): String;
var
    Ind: Integer;
const
    LW = 'áâãàéêíóôõúüûçñ';
    UP = 'ÁÂÃÀÉÊÍÓÔÕÚÜÛÇÑ';
begin
    Result := '';
    for Ind := 1 to Length(Text) do
        if Pos(Copy(Text, Ind, 1), LW) > 0 then
            Result := Result + Copy(UP, Pos(Copy(Text, Ind, 1), LW), 1)
        else
            Result := Result + UpperCase(Copy(Text, Ind, 1));
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.