MaskEdit-Mudança de focus

14/03/2003

0

Tenho dois MaskEdit Data1 e Data2 gostaria que o Data2 fosse selecionado automáticamente após o Data1 ter sido preenchido. [/b]


Uelinton

Uelinton

Responder

Posts

14/03/2003

Marcelo Saviski

[color=blue:acede9d86a]no onchange do maskedit1 faça[/color:acede9d86a]

if length(maskedit1.text)>[b:acede9d86a]10[/b:acede9d86a] then maskedit2.setfocus

se for data assim 01/01/2001 use o [b:acede9d86a]10[/b:acede9d86a]
se for data assim 01/01/01 use[b:acede9d86a] 8[/b:acede9d86a]


Responder

15/03/2003

Anonymous

[quote:b6041bd0f4=´Marcelo Saviski´][color=blue:b6041bd0f4]no onchange do maskedit1 faça[/color:b6041bd0f4]

if length(maskedit1.text)>[b:b6041bd0f4]10[/b:b6041bd0f4] then maskedit2.setfocus

se for data assim 01/01/2001 use o [b:b6041bd0f4]10[/b:b6041bd0f4]
se for data assim 01/01/01 use[b:b6041bd0f4] 8[/b:b6041bd0f4][/quote:b6041bd0f4]

Este código não funciona. Gostaria de saber se existe alguma propriedde do MaskEdit que resolva esse problema.


Responder

15/03/2003

Anonymous

Acabei de resolve o problema! eu tbm testei o código acima e realmente não funciona.
Faça o seguinte:

var
Form1: TForm1;
c: integer = 0; //aqui será guardada a qtd de caracteres do MaskEdit1

implementation

{$R *.DFM}

procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key <> #8 then begin //BackSpace
c := c+1
else
c := c-1;
end;

procedure TForm1.MaskEdit1Change(Sender: TObject);
begin
if c=6 then
SelectNext(ActiveControl as TMaskEdit,true,true);
// ou se preferir coloque somente MaskEdit2.SetFocus;
end;

Um abraço!


Responder

15/03/2003

Marcelo

Tenho dois MaskEdit Data1 e Data2 gostaria que o Data2 fosse selecionado automáticamente após o Data1 ter sido preenchido. [/b]



Se vc ainda nao conseguiu, tente o seguinte...

Ao meu ver, a solução para esse problema seria resolvido em 4 passos praticos:

1º Mudar de MaskEdit para Edit
2º Colocar esse codigo no onchange do Edit1...

[b:7a53b26993]begin[/b:7a53b26993]
[b:7a53b26993]if[/b:7a53b26993] length(Edit1.text)=8 then
[b:7a53b26993]begin[/b:7a53b26993]
Edit2.setfocus;
[b:7a53b26993]end[/b:7a53b26993];
[b:7a53b26993]end[/b:7a53b26993];

3º Criar a seguinte funcao...

function formataData(Data : String):String;
begin
Result:=Copy(Data,1,2)+´/´+Copy(Data,3,2)+´/´+Copy(Data,5,4);
end;

4º Colocar o seguinte codigo no evento onExit do Edit1....

procedure...
begin
Edit1.Text := FormataData(Edit1.Text);
end;

Assim esta sua data formatada e com um visual muito melhor para seu campo editor de datas..........

at+vr


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar