Fórum Maskedit digitar da direita pra esquerda #492390

16/09/2014

0

Boa noite, eu preciso colocar em uma maskedit 12 digitos que sejam 0.
Essa parte esta feita quando abre o form ta la o campo com os 12 zeros, oque eu queria é, quando o user chegar no campo e começar a digitar o codigo esse codigo vai sendo inserido da direita para a esquerda.
Por exemplo, quando abrir o form o campo vai da assim 000000000000
Depois de digitado ficaria 000000050233

assim... como eu faço isso galera

obrigadão.
Marcos Souza

Marcos Souza

Responder

Posts

16/09/2014

Marcos Souza

Pessoal preciso muito saber como faço isso.... se alguém souber me ajudem.
Responder

Gostei + 0

17/09/2014

Paulo Freire

Veja se esse exemplo do Emerson ajuda.


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
Texto, Texto2: string;
i: byte;
begin
if (Key in [´0´..´9´,chr(vk_back)]) then
begin
// limito a 23 caracteres senão haverá um erro na função StrToInt64()
if (key in [´0´..´9´]) and (Length(Trim(TEdit(Sender).Text))>23) then
key := 0;

// pego somente os caracteres de 0 a 9, ignorando a pontuação
Texto2 := ´0´;
Texto := Trim(TEdit(Sender).Text)+Key;
for i := 1 to Length(Texto) do
if Texto[i] in [´0´..´9´] then
Texto2 := Texto2 + Texto[i];

// se foi pressionado BACKSPACE (única tecla válida, fora os números)
// apago o último caractere da string
if key = chr(vk_back) then
Delete(Texto2,Length(Texto2),1);

// formato o texto que depois será colocado no Edit
Texto2 := FormatFloat(´#,0.00´,StrToInt64(Texto2)/100);

// preencho os espaços à esquerda, de modo a deixar o texto
// alinhado à direita (gambiarra)
repeat
Texto2 := ´ ´+Texto2
until Canvas.TextWidth(Texto2) >= TEdit(Sender).Width;

// atribuo a string à propriedade Text do Edit
TEdit(Sender).Text := Texto2;

// posiciono o cursor no fim do texto
TEdit(Sender).SelStart := Length(Texto2);
end;

Key := 0;
end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
// retorno o cursor para o final do texto, caso tenha sido utilizado
// o mouse para mover o cursor dentro do Edit
TEdit(Sender).SelStart := Length(TEdit(Sender).Text);
end;
Responder

Gostei + 0

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

Aceitar