Colocar as Primeiras Letras em Maiúsculas

Delphi

06/02/2005

Oi de Novo.
Alguem sabe como colocar as Primeiras letras de um texto ( edit , etc.. ) em maiúsculas , estou usando assim
with EditTexto do
if Text <> ´´ then
begin
OnChange := nil;
Old := SelStart;
Texto := UpperCase(Copy(Text,1,1))+ LowerCase(Copy(Text,2,Length(Text)));
Text := Texto;
SelStart := Old;
OnChange := EditTextoChange;
end

mas deste jeito esta colocando todo o resto em minusculas , quem tem ideia de como deixar as primeiras letras das palavras em maiúsculas e se possivel evitando as preposições ( de , do , da , dos , das )...


Smartsistemas

Smartsistemas

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

06/02/2005

Tente assim:

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


function CaixaMista (mNome: string): string;
var
   tam,pos1,pos2 : integer ;
   pal : string;
begin
   tam := Length(mNome);
   mNome := TrimRight(mNome) + ´ ´;
   mNome := AnsiUpperCase(mNome);
   while True do
      begin
      pos1:=POS( ´ ´ , mNome) ;
      if pos1 = 0 then
      break;
      pal := Copy(mNome,1,pos1) ;
      pos2 := pos(pal, ´ DA - DAS - DE - DO - DOS ´);
      If pos2 > 0 then
         pal :=AnsiLowerCase (pal)
      else
         pal:=Copy(pal,1,1) + AnsiLowerCase(Copy(pal,2,tam)) ;
      result := result + pal ;
      mNome := copy(mNome,pos1+1,tam)
      end;
end;



GOSTEI 0
Pitamaro

Pitamaro

06/02/2005

Excelente, muito obrigado!
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

06/02/2005

Nesse caso, estou encerrando o tópico.
Abraço a todos.
GOSTEI 0
José

José

06/02/2005

Tópico concluído.
GOSTEI 0
POSTAR