Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   Enviar foco a una columna - Rejilla (https://www.clubdelphi.com/foros/showthread.php?t=80592)

marcoszorrilla 30-06-2006 16:00:59

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.

marcoszorrilla 30-06-2006 16:01:00

Código Delphi [-]
Table1Saldo.focusControl;//solo si se tienen campos persistentes
//Estos funciona tanto con campos persistentes como sin ellos
Código Delphi [-]
Table1.Fields[2].FocusControl;
Table1.FieldByName('Saldo').FocusControl;


La franja horaria es GMT +2. Ahora son las 22:17:10.

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