Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como Evitar Borrar Registro en dbGrid al Presionar ESCAPE ???? (https://www.clubdelphi.com/foros/showthread.php?t=33431)

AGAG4 06-07-2006 16:19:44

Como Evitar Borrar Registro en dbGrid al Presionar ESCAPE ????
 
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:
Código Delphi [-]
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

ok
 
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:
Código Delphi [-]
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, 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:


La franja horaria es GMT +2. Ahora son las 10:02:25.

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