MaskEdit-Mudança de focus
14/03/2003
0
Uelinton
Posts
14/03/2003
Marcelo Saviski
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]
15/03/2003
Anonymous
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.
15/03/2003
Anonymous
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!
15/03/2003
Marcelo
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
Clique aqui para fazer login e interagir na Comunidade :)