Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   calculo de campos presionando la flecha abajo (https://www.clubdelphi.com/foros/showthread.php?t=82312)

luchifer 21-02-2013 22:31:58

calculo de campos presionando la flecha abajo
 
Saludos.

Tengo un problema que consiste en que deseo recalcular el contenido de dos campos mostrados a travez de un tdbgrid presionando la flecha abajo del teclado.

Cuando utilizo el evento onkeypress del tdbgrid y coloco if key=#13 then calcula; Funciona muy bien, pero no se como hacerlo presionando la flecha hacia abajo del teclado.

Se que para algunos es muy facil pero personalmento no se. Por favor si alguien puede colaborarme le estaria muy agradecido.

Gracias de antemano

roman 21-02-2013 22:41:11

Supongo que puedes usar el evento OnKeyDown o bien OnKeyUp del DBGrid y comparar el parámetro Key contra la constante VK_DOWN.

// Saludos

luchifer 22-02-2013 16:42:41

Pasa que cuando utilizo esos eventos, no me guarda o se pierde la cantidad que estoy colocando por ejm.

cant precio valor
5 20 100 cuando presiono enter en el evento onkeypress
5 0 0 cuando utilizo en onkeydown o onkeyup se me pierde lo digitado

Casimiro Notevi 22-02-2013 17:31:50

Pon el código fuente, no podemos adivinar ;)

ecfisa 22-02-2013 18:00:54

Cita:

Empezado por luchifer (Mensaje 455417)
Pasa que cuando utilizo esos eventos, no me guarda o se pierde la cantidad que estoy colocando por ejm.

cant precio valor
5 20 100 cuando presiono enter en el evento onkeypress
5 0 0 cuando utilizo en onkeydown o onkeyup se me pierde lo digitado

Hola luchifer.

Lo que te sugiere roman tiene el mismo efecto que la evaluación que realizas en OnKeyPress. Habría que ver como está tu código en el evento OnKeyDown como te indica Casimiro.

Pero me pregunto...¿ Y no te serviría usar el evento AfterScroll del TDataSet ?, algo parecido a:
Código Delphi [-]
procedure TuForm.FormCreate(Sender: TObject);
begin
  DBGrid1.DataSource.DataSet.AfterScroll := DataSetAfterScroll;
end;

procedure TuForm.DataSetAfterScroll(DataSet: TDataSet);
begin
  with DBGrid1.DataSource.DataSet do
  begin
    Edit;
    FieldByName('CAMPO3').Value:= FieldByName('CAMPO1').Value *
      FieldByName('CAMPO2').Value;
  end;
end;

procedure TuForm.FormDestroy(Sender: TObject);
begin
  DBGrid1.DataSource.DataSet.AfterScroll := nil;
end;

Saludos.


La franja horaria es GMT +2. Ahora son las 01:43:52.

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