Ver Mensaje Individual
  #1  
Antiguo 30-06-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
Enviar foco a una columna - Rejilla

Hay un método poco conocido del TField llamado FocusControl. Este método pasa el foco al primer control data-aware registrado con el Tfield.

Normalmente usamos SetFocus del control data-aware para ello, pero en casos como una grilla, no podemos fijar el foco en la columna de nuestro campo.

Ahí entra FocusControl.

Pensemos que tenemos una rutina que en el evento BeforePost de un dataset verifica varias condiciones antes de grabar y para peor, la tenemos en un datamodule (es decir no vemos los controles visuales). Podemos usar FocusControl para llevar el foco, por ejemplo a un dato faltante o que contenga el dato erróneo. Simplemente haciendo
MiQuery.FieldByName('ID').FocusControl;

La grilla lleva el foco a la columna o control data-aware del campo ID del query MiQuery.

Espero que les sirva.
Responder Con Cita