PDA

Ver la Versión Completa : Como Evitar Borrar Registro en dbGrid al Presionar ESCAPE ????


AGAG4
06-07-2006, 16:19:44
D6, Firebird 1.53, IBX 6.08
Buen día compañeros, he investigado por la internet y no he encontrado la solución a mi problema, inclusive ya se darán cuenta los moderadores de que este hilo ya lo había puesto sin éxito alguno, 1000 disculpas si se enojan, pero a lo mejor alguien podrá tener la solución a mi problema.

Tengo mi aplicación de Facturación donde cuento con un dbGrid normal, alli se capturan los artículos al facturar, el usuario esta impuesto desde el otro sistema en ms.dos presionar el ESCAPE para regresarse al campo anterior, pero en el dbGrid me borrar el registro ACTUAL, como puedo EVITAR eso ???? :confused:

Agradezco cualquier sugerencia al respecto....

marcoszorrilla
06-07-2006, 16:59:06
Puedes utilizar el evento OnKeyDown de la rejilla y procesar como te convenga dicha pulsación de tecla:
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = Vk_Escape then
ShowMessage('Pulsó escape.');
end;

Un Saludo.

nemesio
06-07-2006, 20:45:11
Agregando un poco a lo que escribió Marcos, en ese evento OnKeyDown o OnKeyUp, puedes hacer un post para que los datos que escribiste en el registro se queden guardados.

AGAG4
07-07-2006, 00:54:30
Gracias nemesio, pero me voy màs a lo que me comento marcos, pero no me funciona, en ocasiones me borra el registro, no siempre lo hace el dbGrid, olvide comentarles eso, que no siempre borra el registro, en lo general por lo que me ha tocado ver, son en los Registros Nuevos, lo que hice fue lo siguiente pero no me funciona:

procedure onkeydown....
begin
if key = 27 then begin
if grid.selectedindex = 1 then
grid.selectedindex = 0
else
if grid.selectedindex = 2 then
grid.selectedindex = 1;
//Evitar que borre el registro Actual
key:=0;
end;
end;

Si me voy al post que en mi caso uso el ApplyUpdates, me activarà los triggers de actualizar saldos de artìculos y saldos de clientes y empezarà a bloquear el mismo programa en las demàs PC's....
Gracias por sus respuestas....

Al González
07-07-2006, 04:30:20
¡Hola a todos!

Qué tal Alfredo. Antes que nada aprovecho la ocasión para recomendar de manera enfática la biblioteca de componentes Developer Express (http://www.devexpress.com/Products/VCL/ExQuantumGrid/), la cual posee un súper componente rejilla —TcxGrid— que al utilizarlo te despierta la expresión: ¡Pabernosmatao! :eek: (así de bueno es :)).

Pero suponiendo que en esta etapa del proyecto no estás en condiciones de cambiar el componente rejilla, te sugiero utilizar el evento OnKeyDown de la forma (no de la rejilla) para tener más control sobre el comportamiento de la tecla Esc. Para ello deberás establecer un valor de True en la propiedad KeyPreview de la forma.

Espero te sean de utilidad mis consejos.

Un abrazo expreso.

Al González. :)

P.D. Cuando veo componentes como los de Developer Express y los de otros miles de útiles bibliotecas, me pregunto si los lenguajes más populares que Delphi tienen algo que siquiera les haga un poco de sombra. Me cuestiono si realmente vale la pena Webisar todas las aplicaciones. ¿Qué tan lejos se puede llegar con interfaces de usuario en PHP, Java o Visual Basic? ¿Tendrá ya C# algo parecido a TcxGrid? :rolleyes: ¿Está Delphi en decadencia? :confused: