Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Recorrer GRID con teclas de flechas (https://www.clubdelphi.com/foros/showthread.php?t=95233)

mRoman 09-06-2021 20:16:46

Recorrer GRID con teclas de flechas
 
Buenas tardes.

Trabajo con Delphi6, FB 2.0, Win10

Amigos, una luz por fa. Estoy buscando en el foro el hilo que habla sobre como desplazarse en un DBgrid usando las flechas, ya que, lo q estoy haciendo es que en la pantalla que muestra los datos, el usuario se pueda desplazar con las teclas de flechas para que cada vez q lo haga los datos se transfieran a un TEdits....PERO NO ENCUENTRO EL HILO....hace poco encontré algo de información sobre eso pero como no lo estaba necesitando en ese momento, pues nada mas los lei sin poner mucha atención.

La idea es que cuando se desplace sobre el Grid, con las teclas de flechas, los datos se vayan a los TEdit que tiene la misma pantalla, lo anterior para que estos datos puedan ser modificados.

Sé q es mas fácil usar DBEdit y asociarlos al DataSource del DBGrid....pero la pantalla no quiero que trabaje asi...(raro)...jajaja.

Bueno la cosa es que cuando se usan las flechas ya sea hacia arriba o hacia abajo, en los Edits se van los datos del registro anterior al actual, se que el tema va por DisableControls, BookMark, pero no se como utilizarlos...

Alguien q me ayude?

GRacias

ecfisa 10-06-2021 01:29:15

Hola.

No sé si estoy entendiendo bien la situación, pero interpreto que deseas pasar los datos de la fila apuntada mediante las teclas flecha abajo/arriba a los Edits.
De ser así, me parece que tendrías que usar el evento AfterScroll del TDataSet asociado.

Como ejemplo:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ...
  DBGrid1.DataSource.DataSet.AfterScroll := DataSetAfterScroll;
end;

procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  Edit1.Text := tbName.AsString;   // Campos persistentes de la tabla
  Edit2.Text := tbCapital.AsString;
  Edit3.Text := tbContinent.AsString;
  Edit4.Text := tbArea.AsString;
  Edit5.Text := tbPopulation.AsString;
end;

...

Resultado:


Saludos :)

mRoman 14-06-2021 21:21:00

Cita:

Empezado por ecfisa (Mensaje 541272)
Hola.

No sé si estoy entendiendo bien la situación, pero interpreto que deseas pasar los datos de la fila apuntada mediante las teclas flecha abajo/arriba a los Edits.
De ser así, me parece que tendrías que usar el evento AfterScroll del TDataSet asociado.

Como ejemplo:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  ...
  DBGrid1.DataSource.DataSet.AfterScroll := DataSetAfterScroll;
end;

procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  Edit1.Text := tbName.AsString;   // Campos persistentes de la tabla
  Edit2.Text := tbCapital.AsString;
  Edit3.Text := tbContinent.AsString;
  Edit4.Text := tbArea.AsString;
  Edit5.Text := tbPopulation.AsString;
end;

...

Resultado:


Saludos :)

SI DANIEL....esto era lo q andaba buscando!!...muchas gracias. Nada de lo q habia comentado (DisableControls y Bookmark)...jajajaj....

Gracias nuevamente.

ecfisa 15-06-2021 17:26:51

Me alegro que te haya servido ! ^\||/

Saludos :)


La franja horaria es GMT +2. Ahora son las 10:00:48.

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