Letra Maiuscula automatica

Delphi

04/09/2003

Seria possível programar um TEdit para que mesmo se digitar texto
em minusculo, automaticamente em tempo de digitação ele
transformasse a primeira letra e todas letras depois do ´espaço´
em maiusculas.
:oops: ? ? ? ?
T+


Eniorm

Eniorm

Curtidas 0

Respostas

4_olho

4_olho

04/09/2003

Como não é comum este tipo de escrita em qualquer língua, portanto não tem esta facilidade. Infelizmente é uma invenção dos analistas. Lembre-se que maiúsuclas só no início de frase e em subtsantivos próprios.


GOSTEI 0
Koplin

Koplin

04/09/2003

Se a sua idéia é pegar algo como joão de deus da silva e converter para João de Deus da Silva, tente esta função que uso em meus aplicativos.


procedure FormataTxt(sender:TObject);
var s1,s2,s3:string; tam1,i:integer; b:boolean;
begin
If(sender is TEdit)or(sender is TDBEdit)Then With sender as tCustomEdit do Begin
s1:=TCustomEdit(sender).Text;
tam1:=Length(s1);
for i:= 0 to tam1 -1 Do Begin
s2:=Copy(s1,i,1);
If i = 0 Then begin
delete(s1,1,1);
s1:=ansiUpperCase(s2)+s1;
end;
If(s2=´ ´)Then Begin
s3:=Copy(s1,i+1,3);
If(s3=´do ´)or(s3=´da ´)or(s3=´das´)or(s3=´e/o´)or(s3=´dos´)or(s3=´de ´)or(Copy(s3,Length(s3)-1,1)=´ ´) Then B:=True else b:=False;
If b=false Then Begin
s3:=Copy(s1,i+1,1);
delete(s1,i+1,1);
s3:=AnsiUpperCase(s3);
insert(s3,s1,i+1);
end; end;


Para usá-la:


no evento OnExit do componente faça



If TabelaTal.state in[dsinsert,dsedit] then//essa linha se for dbtext
Formatatxt(sender);


TCustomEdit(sender).Text:=s1;
end; end; end;


GOSTEI 0
Bacalhau

Bacalhau

04/09/2003

O TEdit tem a propriedade CharCase.

Coloca CharCase := ecUpperCase; :lol:


GOSTEI 0
Eniorm

Eniorm

04/09/2003

É isso mesmo cara, com uma diferença, ao invés de ser executado no OnExit, isso seria em tempo de digitação.
Exemplo, vc inicia a digitação, como está a 1ª posição,
a letra seria em maiuscula, o resto seria em minuscula
enquando não fosse digitado um espaço e assim por diante.
T+


GOSTEI 0
Koplin

Koplin

04/09/2003

Eu tenho esta função adaptada para formatar cep, data e telefones.
É só aproveitar esta idéia.

Eu uso no OnExit para não ficar chamando toda hora a função. Mas, do seu jeito tbm funciona.

Fico feliz por ajudar.
Boa sorte.


GOSTEI 0
Eniorm

Eniorm

04/09/2003

Eu tenho esta função adaptada para formatar cep, data e telefones. É só aproveitar esta idéia. Eu uso no OnExit para não ficar chamando toda hora a função. Mas, do seu jeito tbm funciona. Fico feliz por ajudar. Boa sorte.


Legal cara, posta a func aqui no forum
T+


GOSTEI 0
Carlosrm

Carlosrm

04/09/2003

eniomarconcini,

Se depois de ler o texto do 4_olho, ainda não tiver passado a sua vontade, experimente a alternativa abaixo (lembre-se de que se o seu sistema oferecer opções incomuns para o usuário, ele (usuário) levará mais tempo para utilizar com desenvoltura o seu sistema. À primeira vista o seu sistema parecerá menos eficiente.

Coloque um edit no formulário e na propriedade CharCase do edit selecione ecLowerCase (não importa como vc digitar; o edit só vai mostrar em minúsculas).

procedure TForm1.Edt1Exit(Sender: TObject);
var
I : byte;
lin : string;
begin
lin := edt1.text;
For I := 1 to length(lin) do
If (I = 1) or (lin[I - 1] = ´ ´) then
lin[I] := upcase(lin[I]);
edt1.text := lin;
end;

Obs: Depois que sair do edit1, o text ´josé da silva e lima´ ficará ´José Da Silva E Lima´.

Geralmente, dez programadores resolvem o mesmo problema de dez modos diferentes. Melhor para todos nós. Um ajuda o outro, e outro ajuda o um.

Se não ajudou, espero não ter atrapalhado. carlosrm.


GOSTEI 0
POSTAR