PDA

Ver la Versión Completa : Enviar foco a una columna - Rejilla


marcoszorrilla
30-06-2006, 16:00:59
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.

marcoszorrilla
30-06-2006, 16:01:00
Table1Saldo.focusControl;//solo si se tienen campos persistentes
//Estos funciona tanto con campos persistentes como sin ellos

Table1.Fields[2].FocusControl;
Table1.FieldByName('Saldo').FocusControl;