Fórum Formatando string no Tedit em tempo de execução? #196239

20/11/2003

0

Estou formatando o CPF em um edit no momento que o individuo digita,
if length(CGCCPF.Text)=4 then CGCCPF.Text:=LeftStr(CGCCPF.Text, 3)+´.´+RightStr(CGCCPF.Text,length(CGCCPF.Text)-3);
if length(CGCCPF.Text)=8 then CGCCPF.Text:=LeftStr(CGCCPF.Text, 7)+´.´+RightStr(CGCCPF.Text, length(CGCCPF.Text)-7);
CGCCPF.Modified
if length(CGCCPF.Text)=12 then CGCCPF.Text:=LeftStr(CGCCPF.Text, 11)+´-´+MidStr(CGCCPF.Text, 3,length(CGCCPF.Text)-11);

Este codigo de cima é para formatar o CPF, esta no evento ON CHANGE do Edit.Só que qdo passa pelo 1º IF ou seja o length(CGCCPF.Text)=4, ele realmente acrescenta um ponto ao final da string, só que põe o cursor
á esquerda antes do 1º nº digitado, como se faz para deixar o cursor do lado direito para continuar a digitação?


Host

Host

Responder

Posts

20/11/2003

Rodrigo_lemes

Este procedimento funciona, mas tem um probleminha q tem q ser tratado. Quando vc está voltando c/ Backspace ele não apaga tudo, apenas se o texto estiver todo iluminado. Não tive muito tempo p/ mecher no código... depois eu posso te passar algo mais elaborado. Espero q tenha ajudado
procedure TForm1.Edit1Change(Sender: TObject);
begin
//Observação: Coloque o MaxLength = 14
Edit1.Selstart:= Length(Edit1.text);//Posiciona o ponteiro à direita
If (Length(Edit1.Text) = 3) or (Length(Edit1.Text) = 7)
Then Edit1.Text:= Edit1.Text+´.´
Else If Length(Edit1.Text) = 11
Then Edit1.Text:= Edit1.Text+´-´ Edit1.MaxLength
end;


Responder

Gostei + 0

20/11/2003

Rodrigo_lemes

melhorei um pouquinho, mas ainda falta averiguar se a tecla digitada foi um número ou não...

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
If (Key = 8) Or (Key = 46) Then Edit1.Clear;
Edit1.Selstart:= Length(Edit1.text);
If (Length(Edit1.Text) = 3) or (Length(Edit1.Text) = 7)
Then
Edit1.Text:= Edit1.Text+´.´
Else If Length(Edit1.Text) = 11
Then Edit1.Text:= Edit1.Text+´-´
end;


Responder

Gostei + 0

20/11/2003

Host

O que eu precisava saber era só isso...valeu mesmo, se precisar!!
CGCCPF.Selstart:= Length(CGCCPF.text)


Responder

Gostei + 0

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

Aceitar