Mudar foco de objeto
Alguem sabe qual o comando devo utilizar para mudar automaticamente o foco de um objeto para o próximo sem precisar pressionar nenhuma tecla especifica.
Flacandido
Curtidas 0
Respostas
Marcello
05/06/2005
Vc pode usar nomedocomponente.setfocus.
GOSTEI 0
Flacandido
05/06/2005
Caro Marcello, usar o Setfocus eu sei usar, mas queria criar uma função que ao ser acionada mudasse o foco para o próximo objeto o qual a principio nao teria como saber o nome do objeto seguinte.
GOSTEI 0
Marco Salles
05/06/2005
Amigo flacandido , tente o codigo abaixo:
//crie uma procedure
//Executa a MudarFoco
[b:0918a5cbf5]//em cada componente que e que é controle escreva no seu evento OnEnter o seguinte Código
//Note que não precias escrever um numero n de procedures para cada
//edit
//Basta escrever uma Procedure e Liga-los a todos os Edits do form[/b:0918a5cbf5]
[b:0918a5cbf5]//Outro Exemplo de componente que é controle[/b:0918a5cbf5]
[b:0918a5cbf5]//e assim sucessivamente, para cada componente que for controle[/b:0918a5cbf5]
[color=darkred:0918a5cbf5][b:0918a5cbf5]//A Unica exceção são para os componentes que não são controle .. Por exemplo os Labels
//Importante.... No botão que fizer a chamada , não coloque nada no seu evento OnEnter[/b:0918a5cbf5][/color:0918a5cbf5]
Alguma duvida :?: :?: :?:
implementation
//declare esta variavel nesta secção
var
i:Integer=0;
{$R *.DFM}//crie uma procedure
procedure MudarFoco; begin i:=1+i; if i > form1.ControlCount-1 Then i:=0; Form1.ActiveControl:=Nil; TWinControl(Form1.Controls[I]).SETFOCUS; end;
//Executa a MudarFoco
procedure TForm1.Button1Click(Sender: TObject); begin MudarFoco; end;
[b:0918a5cbf5]//em cada componente que e que é controle escreva no seu evento OnEnter o seguinte Código
//Note que não precias escrever um numero n de procedures para cada
//edit
//Basta escrever uma Procedure e Liga-los a todos os Edits do form[/b:0918a5cbf5]
procedure TForm1.EditGeralEnter(Sender: TObject); begin i:=TEdit(sender).TabOrder end;
[b:0918a5cbf5]//Outro Exemplo de componente que é controle[/b:0918a5cbf5]
procedure TForm1.ButtonGeralEnter(Sender: TObject); begin i:=TButton(sender).TabOrder end;
[b:0918a5cbf5]//e assim sucessivamente, para cada componente que for controle[/b:0918a5cbf5]
procedure TForm1.ComponenteGeralEnter(Sender: TObject); begin i:=TClasseDoComponente(sender)>TabOrder end;
[color=darkred:0918a5cbf5][b:0918a5cbf5]//A Unica exceção são para os componentes que não são controle .. Por exemplo os Labels
//Importante.... No botão que fizer a chamada , não coloque nada no seu evento OnEnter[/b:0918a5cbf5][/color:0918a5cbf5]
Alguma duvida :?: :?: :?:
GOSTEI 0