PDA

Ver la Versión Completa : Deshabilitar Insert en DBGrid con flecha abajo.


acalderonr
29-07-2011, 00:11:36
Hola a todos,

Tengo una duda que no logro resolver ni encuentro otro Post relacionado.

Tengo un DBGrid que está asociado a una tabla temporal DBF, cuando se navega entre las columnas con TAB al finalizar la línea se abre automáticamente un nuevo registro, cumpliendo ciertas condiciones.

Mi problema es que cuando se bajan con la Flecha Abajo, también se puede Insertar un registro y yo quiero evitar eso.

No tengo problema en capturar el VK_DOWN desde el ONKEYDOWN, pero cuando lo captura es por que ya Insertó un registro en blanco.

Será posible bloquear la inserción de registros con KEYDOWN y solo permitirla cuando se navega con TAB?

Espero haberme explicado.

Gracias.

Casimiro Notevi
29-07-2011, 00:45:51
Por ejemplo, en el evento beforeinsert:

procedure TDMmain.QRtiposIvaBeforeInsert(DataSet: TDataSet);
begin
DataSet.Cancel;
end;

ecfisa
29-07-2011, 01:54:43
Hola.

Otra forma puede ser:

...
implementation
...
type
DBGridExt = class(TDBGrid);

procedure TForm1.DBGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
with DBGridExt(TDBGrid(Sender)) do
if (Key = VK_DOWN)and(Row = RowCount-1) then
Abort
end;



Saludos.