Edit da direita para esquerda

Delphi

13/01/2012

Alguém sabe como faço para entrar com um seguência de digitos em um edit da direita para esquerda.
Exemplo: a sequência 150087
1
15
150
1500
15008
150087
nesta sequência.

Desde já obrigado.
Leandro Carvalho

Leandro Carvalho

Curtidas 0

Respostas

Marco Salles

Marco Salles

13/01/2012

alterar a propriedade BiDiMode do edit para bdRightToLeft
GOSTEI 0
Leandro Carvalho

Leandro Carvalho

13/01/2012

Isto ai não altera em nada.
Esta ideia que quero é a mesma usada em caixas eletrônicos. Porém não quero em formato decimal, só inteiro.
GOSTEI 0
Marco Salles

Marco Salles

13/01/2012

Isto ai não altera em nada.
Esta ideia que quero é a mesma usada em caixas eletrônicos. Porém não quero em formato decimal, só inteiro.


Engraçado , para uns a simples instrução da certo

http://www.activedelphi.com.br/forum/viewtopic.php?t=57337&sid=c9121dc4136270a64e67e3aa096ffe63

para outros , dizem que não altera em nada

Vai entender
GOSTEI 0
Leandro Carvalho

Leandro Carvalho

13/01/2012

Este aqui funcionou legal

procedure TForm1.FormCreate(Sender: TObject);
begin
SysLocale.MiddleEast := true;
Edit1.BiDiMode := bdRightToLeft;
end;

Mas agora gostaria de ir digitando usando mascara, por exemplo vou utilizar 8 digitos e quero que começe com a mascara 00000000 e conforme vai digitando:::
00000001
00000015
00000156
00001568
00015680
00156809
01568093
15680936

Desde já obrigado pela ajuda
GOSTEI 0
Marco Salles

Marco Salles

13/01/2012

//SysLocale.MiddleEast := true; Acho que so é necessário se for programar para a Europa Oriental

Quanto sua duvida segue uma sugestão...

procedure TForm1.Edit1Change(Sender: TObject);
var
str:string;
posSel:integer;
begin
with Tedit(sender) do
  begin
   OnChange:=nil;
   posSel:=SelStart;
   str:=Text;
   Delete(str,1,1);
   Text:=str;
   Text:=StringOfChar(0,8 - Length(Text)) + Text;
   SelStart:=posSel;
   OnChange:=Edit1Change;
  end;
end;


procedure TForm1.Edit1Enter(Sender: TObject);
begin
Edit1.SelStart:=8;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Alignment:=taRightJustify;
edit1.Text:=00000000;
edit1.MaxLength:=9;
end;


Sugiro que crie a partir desta ou outra idéia um componente ... Muita codificação é péssimo
para a legitibilidade e Manutenção dos programas
GOSTEI 0
Leandro Carvalho

Leandro Carvalho

13/01/2012

obrigado
GOSTEI 0
POSTAR