Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2003
Carlos Arevalo Carlos Arevalo is offline
Miembro
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 111
Poder: 21
Carlos Arevalo Va por buen camino
Utilizando un Actionlist

Como podría desplazarme por los componentes de un formulario utilizando un Actionlist ?
Estuve probando con lo siguiente pero no me funciona:
Para desplazarme hacia adelante
SelectNext(TWinControl(Sender), true, true);
Y
SelectNext(TWinControl(Sender), false, true);
Para desplazarme hacia atrás.

Muchas gracias por la ayuda
__________________
Carlos Arevalo
MSN Messenger: carlos@arevalo.com.ve
Responder Con Cita
  #2  
Antiguo 12-09-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
Hola.
Cita:
Mensaje original de Carlos Arevalo
Para desplazarme hacia adelante
SelectNext(TWinControl(Sender), true, true);
Y
SelectNext(TWinControl(Sender), false, true);
Para desplazarme hacia atrás.
eso es correcto, lo que tienes que hacer es tener cuidado en la llamada, es decir sender debe ser el control sobre el cual estas parado o el activecontrol para ser mas generico.

supongo que creaste una accion llamada Adelante y otra llamada atras y en el execute de cada una colocaste el selectnext correspondiente, entonces en la llamada a esta accion debes pasar el control actual como parametro sender, es decir:
Código:
procedure TForm1.AdelanteExecute(Sender: TObject);
begin
  SelectNext(twincontrol(sender),true,true);
end;

procedure TForm1.AtrasExecute(Sender: TObject);
begin
  SelectNext(twincontrol(sender),false,true);
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = #13) then
  if (GetKeyState(VK_SHIFT) and $80 = 0) then
  begin
    key := #0;
    AdelanteExecute(sender);
  end else
    AtrasExecute(sender);
end;
si esto es lo que quieres hacer, me parece mas facil y generico hacerlo en el onkeypress de la Form (recuerda de activar el keypreview de la Form), seria algo asi:
Código:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (key = #13) and 
     ((ActiveControl is TEdit) or (ActiveControl is TDBEdit)) then
  begin
    Key := #0;
    SelectNext(ActiveControl, GetKeyState(VK_SHIFT) and $80 = 0, True);
  end
end;
Nota: GetKeyState(VK_SHIFT) and $80 = 0 lo que hace es verificar si tienes la tecla shift oprimida junto con el enter para que funcione como el tab y el key := #0 es para evitar que suene una campanita.

espero que te sirva.
Responder Con Cita
  #3  
Antiguo 13-09-2003
Carlos Arevalo Carlos Arevalo is offline
Miembro
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 111
Poder: 21
Carlos Arevalo Va por buen camino
Ok. gracias lo voy a probar
__________________
Carlos Arevalo
MSN Messenger: carlos@arevalo.com.ve
Responder Con Cita
  #4  
Antiguo 13-09-2003
Carlos Arevalo Carlos Arevalo is offline
Miembro
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 111
Poder: 21
Carlos Arevalo Va por buen camino
Gracias Rudi por tu sugerencia, me funciono parcialmente y utilice lo siguiente y funciono perfecto:
SelectNext(TWinControl(Sender), GetKeyState(VK_SHIFT) and $80 = 0, True);
Pero al utilizar en el formulario varios Tpanel no brinca de un Tpanel al otro pero si utilizo la tecla de tabulacion si puedo recorrer el formulario completo.

Alguna sugerencia?
__________________
Carlos Arevalo
MSN Messenger: carlos@arevalo.com.ve
Responder Con Cita
  #5  
Antiguo 13-09-2003
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
Hola carlos

No se que te estará pasando, lo acabo de probar con tpanel, con tgroupbox, directo sobre el form y lo hace perfecto.

por decirte algo verifica el keypreview de la forma y fijate si al llamar al metodo el codigo pasa por donde debe pasar, te lo digo por decirte algo pues aveces se nos olvida poner o quitar algo, bien sea una validacion o inicializar alguna variable.
Responder Con Cita
  #6  
Antiguo 13-09-2003
Carlos Arevalo Carlos Arevalo is offline
Miembro
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 111
Poder: 21
Carlos Arevalo Va por buen camino
El problema es que tenia los Tpanel con la propiedad tabstop en true ya funciona bien

gracias nuevamente.
__________________
Carlos Arevalo
MSN Messenger: carlos@arevalo.com.ve
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:20:32.


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
Copyright 1996-2007 Club Delphi