Fórum Formatando string no Tedit em tempo de execução? #196239
20/11/2003
0
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
Curtir tópico
+ 0Posts
20/11/2003
Rodrigo_lemes
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;
Gostei + 0
20/11/2003
Rodrigo_lemes
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;
Gostei + 0
20/11/2003
Host
CGCCPF.Selstart:= Length(CGCCPF.text)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)