Ganhe dinheiro  escrevendo tutoriais para o Fórum do BABOO! Conheça os Tutoriais Pagos 2016

Arquivado

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

tommy

Primeira letra dos nomes em maiuscula para delphi 7

6 posts neste tópico

Oi pessoal, vi o outro tópico sobre essa funcao.

Mas eu preciso de uma funcao igual a essa s''o que

para delphi. Colocar as primeiras letras dos nomes

em maiusculas num edit. salvo que de, do, dos, da e

das n~ao devem ser modificadas.

Muito obrigado.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

function UpperNome(const Nome: String): String;

var

x : Integer;

lista : Array[0..4] of String[03];

function NaoAchaPreposicao(Palavra : String): Boolean;

var

x : Integer;

begin

Result := True;

for x := 0 to 4 do

if Trim(Palavra) = lista[x] then

Result := False;

end;

begin

Result := Nome;

lista[0] := 'das'; lista[1] := 'dos' ;

lista[2] := 'de'; lista[3] := 'do' ;

lista[4] := 'da';

Result := UpCase(Result[1]) + Copy(Result, 2, Length(Result));

for x := 2 to Length(Nome) do begin

if Nome[x] = #32 then

if Copy(Nome,x+1,1) <> 'e' then

if NaoAchaPreposicao(Copy(Nome,x+1,3)) then

Result := Copy(Result, 1, x)

+ UpCase(Result[x+1])

+ Copy(Result, x+2, Length(Result));

end;

end;

Como usar:

Edit1.Text := UpperNome(Edit1.Text);


11355-SIGjuliano.neu-gmail-orange.png

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Morita

Valeu por ter enviado a função.

já coloquei ela em funcionamento.

Abraços. Márcio

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

----------------

tommy escreveu:



Oi pessoal, vi o outro tópico sobre essa funcao.

Mas eu preciso de uma funcao igual a essa s'o que

para delphi. Colocar as primeiras letras dos nomes

em maiusculas num edit. salvo que de, do, dos, da e

das n~ao devem ser modificadas.


Muito obrigado.
9.gif

----------------


Não sei se você precisa ainda, eu uso essa que eu fiz, ela converte a primeira em maiúscula e quando encontra um espaço, converte a próxima em maiúscula também.

function TrrPrincipal.tratanome(aux: string): String;
var
  i: integer;
begin
  aux:=lowercase(aux);
  if length(aux)<>0
  then Begin
          aux[1]:=Upcase(aux[1]);
          for i:=2 to length(aux) do
            if aux=' '
            then aux[i+1]:=Upcase(aux[i+1]);
          tratanome:=aux;
        End
  else tratanome:=';
end;

"A informação é a redução da dúvida"

Claude Shannon

18724-assinatura6.jpg

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

a função está ok, até modifiquei um pouco...

mas...

é só aqui ou ela não converte para minúsculo as letras acentuadas ?

tenho que fazer alguma modificação ?

function UpperNome(const Nome: String): String;
var
x : Integer;
lista : Array[0..18] of String[03];

function NaoAchaPreposicao(Palavra : String): Boolean;
var
x : Integer;
begin
Result := True;
for x := 0 to 18 do
if (Trim(Palavra) = lista[x]) then
Result := False;
end; // FUNCTION

begin

if (Nome = '') Then
Exit;

Result := LowerCase(Nome);

lista[0] := 'das';
lista[1] := 'dos';
lista[2] := 'de';
lista[3] := 'do';
lista[4] := 'da';
lista[5] := 'o';
lista[6] := 'a';
lista[7] := 'os';
lista[8] := 'as';
lista[9] := 'em';
lista[10] := 'na';
lista[11] := 'no';
lista[12] := 'até';
lista[13] := 'ao';
lista[14] := 'aos';
lista[15] := 'com';
lista[16] := 'dum';
lista[17] := 'por';
lista[18] := 'sob';

Result := UpCase(Result[1]) + Copy(Result, 2, Length(Result));

for x := 2 to Length(Nome) do
begin
if (Nome[x] = #32) then
if (Copy(LowerCase(Nome),x+1,1) <> 'e') then
if (NaoAchaPreposicao(Copy(LowerCase(Nome),x+1,3))) then
Result := Copy(Result, 1, x) + UpCase(Result[x+1]) + Copy(Result, x+2, Length(Result));
end; // FOR
end;

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
    • 9 Mensagens
    • 440 Visualizações
    • 12 Mensagens
    • 351 Visualizações
    • 1 Mensagens
    • 294 Visualizações
    • 3 Mensagens
    • 282 Visualizações
    • 3 Mensagens
    • 278 Visualizações