Colocar em um edit a primeira letra de cada pal. em Maiús ?

Delphi

11/08/2003

Galera quero colocar em um edit a primeira letra de cada palavra em Maiúscula, usei o código abaixo

function Maiuscula(Texto:String): String;
{Converte a primeira letra do texto especificado para
maiuscula e as restantes para minuscula}
var
OldStart: Integer;
begin
if Texto <> ´´ then
begin
Texto := UpperCase(Copy(Texto,1,1))+LowerCase(Copy(Texto,2,Length(Texto)));
Result := Texto;
end;
end;

Acontece que este código so me retorna a primeira palavra com a letra em maiúscula
Ex ao digitar

jose marcos diirr

o código me retorna

Jose marcos diirr

E o que eu quero na verdade e que ele me retorne

Jose Marcos Diirr e casso a palavra tenha (de da) estas fiquem em minúsculo
Ex.

jose carlos da silva

fique

Jose Carlos da Silva

Qualquer ajuda e bem vinda, obrigado desde já

Marcos Diirr


Marcosdiirr

Marcosdiirr

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

11/08/2003

Colega,

É só avançar um pouco mais no código que eu postei com relação ao ´de´ e ´da´.

Veja: http://delphiforum.icft.com.br/forum/viewtopic.php?t=17958


GOSTEI 0
Lbcosta

Lbcosta

11/08/2003

Function PrimeiraLetra(Const Texto: String): String;
var
Temp: String;
K : Integer;
begin
K := 1;
Temp := ´´;
While (k <= LengTh(Texto)) do
Begin
If (K = 1) Then
Begin
Temp := UpCase(Texto[k]);
Inc(k);
End;
If (Texto[k] = ´´´´) Then
Begin
Temp := Temp + ´´´´ + AnsiUpperCase(Texto[k + 1]);
Inc(K);
End;
If (Texto[k] = ´ ´) then
Begin
Temp := Temp + ´ ´ + AnsiUpperCase(Texto[k + 1]);
Inc(K);
End
Else
Temp := Temp + AnsiLowerCase(Texto[k]);
Inc(K);
End;
Result := Temp;
end;


GOSTEI 0
POSTAR