deixar os primeiras letras maiusuculas no on change de um...

Delphi

22/04/2008

deixar os primeiras letras maiusculas no on change de um edit?
tem como?
ex.:
Jose Aparecido Moreira


Guigosnet

Guigosnet

Curtidas 0

Respostas

Facc

Facc

22/04/2008

deixar os primeiras letras maiusculas no on change de um edit? tem como? ex.: Jose Aparecido Moreira


Função para alterar a primeira letra
function FormataNome(sNome : String) : String;
const
  excecao: array[0..5] of string = (´ da ´, ´ de ´, ´ do ´, ´ das ´, ´ dos ´, ´ e ´);
var
  tamanho, j: integer;
  i: byte;
begin
  Result := AnsiLowerCase(sNome);
  tamanho := Length(Result);

  for j := 1 to tamanho do
    // Se é a primeira letra ou se o caracter anterior é um espaço
    if (j = 1) or ((j>1) and (Result[j-1]=Chr(32))) then
      Result[j] := AnsiUpperCase(Result[j])[1];

  for i := 0 to Length(excecao) do
    Result := StringReplace(Result,excecao[i],excecao[i],[rfReplaceAll, rfIgnoreCase]);
end;


No Onchange do Edit/DBEdit coloque
var
  i: integer;
begin
  if (Sender is TDBEdit) then
  begin
    i := (Sender as TDBEdit).SelStart;
    (Sender as TDBEdit).Text := FormataNome((Sender as TDBEdit).Text);
    (Sender as TDBEdit).SelStart := i;
  end;

Esse acima é generico, mude de TDBEdit para TEdit, e aponte os demais edits para um só OnChange


GOSTEI 0
Guigosnet

Guigosnet

22/04/2008

blz.. deu certo, obrigado


GOSTEI 0
POSTAR