Mudar foco de objeto

Delphi

05/06/2005

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

Flacandido

Curtidas 0

Respostas

Marcello

Marcello

05/06/2005

Vc pode usar nomedocomponente.setfocus.


GOSTEI 0
Flacandido

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

Marco Salles

05/06/2005

Amigo flacandido , tente o codigo abaixo:

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
POSTAR