GARANTIR DESCONTO

Fórum deixar os primeiras letras maiusuculas no on change de um... #357473

22/04/2008

0

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


Guigosnet

Guigosnet

Responder

Posts

23/04/2008

Facc

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


Responder

Gostei + 0

23/04/2008

Guigosnet

blz.. deu certo, obrigado


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar