Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Como hacer foco a otro componente de un TPageControl? (https://www.clubdelphi.com/foros/showthread.php?t=11940)

burasu 30-06-2004 12:50:46

¿Como hacer foco a otro componente de un TPageControl?
 
Hola amigos, tengo una pantalla en mi aplicación en la que tengo una serie de campos distribuidos a lo largo de un componente TPageControl. Cuando esté en el último campo de la pestaña 1 por ejemplo quiero que se me vaya al primer campo de la pestaña 2. Para ello utilizo el siguiente código en el evento Keypress:


if Key = #13 then begin
Key := #0;
DatosCentro.ActivePageIndex := 2;
EditDigitosCta.SetFocus;
end


Pero en vez de esto me salta al botón que tengo en la ventana fuera del componente. ¿Que fallo de código o de tocar una propiedad estoy comentiendo? Sin embargo en un proceso de controlar que tengo los valores correctos introducidos en dicha pantalla si me funciona correctamente?

Gracias por sus sugerencias

tcp_ip_es 30-06-2004 13:32:05

a lo mejor es una tontería pero en vez de 2 en el activepageindex pon un 1, ten en cuenta que la cuenta comienza desde 0.

He probado tu código y funciona perfectamente.

Saludos, Tony

burasu 30-06-2004 16:08:47

Veras el dos lo puse para aclarar un poco el codigo con respecto a mi explicación. Son 4 pestañas con que por lo menos si no fuera la segunda pestaña me debiera activar la 3 pero no lo hace. De todas formas si tu me dices que funciona lo probaré haber si es algún problema mio :P

marcoszorrilla 30-06-2004 16:42:02

Mira este ejemplo tomado de un programa ahora mismo y funcionando.
Código Delphi [-]
  procedure TfrAlumnos.FormCreate(Sender: TObject);
  begin
  CalculaHoras();
  PgcAlumnos.ActivePageIndex :=0;
  lbTotal.Caption:=FormatFloat(',0.00',Dmxxx.QrHoras.Fields[0].AsFloat);
  end;

Es lo mismo que te acaba de decir Toni.

Un Saludo.

burasu 30-06-2004 17:04:43

ya he encontado por que me falla. Uso el siguiente código:

begin
if Key = #13 then
begin
Key := #0;
Perform(WM_NEXTDLGCTL, 0, 0);
end
end;

Que es para simular el movimiento del Tab con el Intro. Si no lo pongo y al form le pongo la variable KeyPreview a False, me funciona lo anterior pero no me funcionaria esto. Como lo podría hacer de una forma más autonoma que no sea poner setfocus en el keypress de cada boton???


La franja horaria es GMT +2. Ahora son las 12:11:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi