Ver Mensaje Individual
  #2  
Antiguo 30-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 19.435
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por seldonito
...(que hace que vayas al control anterior) desde una tecla cualquiera (por ejemplo f2).
Una forma sencilla es hacerlo desde los eventos del form; Coloca la propiedad Preview del Form a True y el siguiente código en el evento OnKeyUp:

Código Delphi [-]
    
    if (key = VK_F2) then begin
      // Control anterior
      Self.Perform (WM_NEXTDLGCTL, Integer(0){Anterior}, 0);
     end;
    if (key = VK_F3) then begin
      // Control siguiente
      Self.Perform (WM_NEXTDLGCTL, Integer(1){siguiente}, 0);
    end;


Cita:
Empezado por seldonito
...Tampoco sé si será mejor ejecutar shift+tab o hay alguna manera de saber cual es el el control anterior en el tab order y que ese contror coja el foco
...
Bueno ésto lo que te va a hacer es ir al control anterior segun el TabOrder definido; Si lo que estás pensando es ir al control anterior de pantalla deberás utilizar una función que te lo calcule.
Puedes obtener la lista de controles del form a través de Components y componentesCount; Deberás buscar su Left y su Top para calcular cual es el "anterior" o "posterior" al tuyo (segun posición de pantalla) y no olvidarte de comprobar los contenedores de ambos controles (ya que si no puedes tener problemas cn controles en diferentes TAB's por ejemplo)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita