Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Desplazarme por un DBgrid (https://www.clubdelphi.com/foros/showthread.php?t=7340)

Javier_A 12-02-2004 09:13:34

Desplazarme por un DBgrid
 
Hola a tod@s.

Al desplazarme por las filas de un dbgrid, con las flechas o con la barra vertical de desplazamiento, ( no utilizo el navigator), ¿ que evento del Dbgrid debo utilizar para detectar que he cambiado de registro y que cada vez que entre en una fila distinta realize unas determinadas acciones ?

Muchas gracias y un saludo

__cadetill 12-02-2004 09:31:14

After o BeforeScroll del Dataset asociado

Javier_A 12-02-2004 09:55:34

Sale un error
 
Hola Cadetill,

Utilizando el codigo After o BeforeScroll del Dataset , me sale el error 'Stack overflow' al intentar ejecutar el programa.
¿ Hay otra manera ?, o se puede solucionar el error

Un saludo y gracias

__cadetill 12-02-2004 10:09:42

Así, a bote pronto y sin ver el código que haces en ese evento.... la verdad es que no te sabría decir. Anda, ponnos un poquito de código!!! ;)

Javier_A 12-02-2004 10:44:37

Ahi te va
 
procedure TForm4.ReparacionAfterScroll(DataSet: TDataSet);
begin
leer();
end;

procedure Tform4.leer();
var
pieza,pedido,linea,codlong: string;
Rdo: Variant;
begin
blanco();
pieza:=D4.columns[5].Field.Value;
pedido:=D4.columns[3].Field.Value;
linea:=D4.columns[4].Field.Value;
codlong:=pedido+linea+'RE';
Rdo:=Reparacion.Locate('Codlargo',codlong,[]);
codlarg:=codlong;
if Rdo=true Then
begin
Edit1.Text:=Reparacion.fieldbyname('obs_1').AsString;
Edit2.Text:=Reparacion.fieldbyname('obs_2').AsString;
Edit3.Text:=Reparacion.fieldbyname('obs_3').AsString;
Edit4.Text:=Reparacion.fieldbyname('obs_4').AsString;
Edit5.Text:=Reparacion.fieldbyname('obs_5').AsString;
end;
If rdo=false then
showmessage('Avisa a Javier, ha habido un problema');

If Reparacion.fieldbyname('estado').AsString='reparado' then
begin
DateTimePicker1.Enabled:=True;
RadioButton3.Checked:=True;
RadioButton4.Checked:=False;
DateTimePicker1.Date:=Reparacion.fieldbyname('fechaestado').AsDateTime;
end
else
begin
RadioButton3.Checked:=False;
RadioButton4.Checked:=True;
DateTimePicker1.Date:=date;
DateTimePicker1.Enabled:=false;
end;
Codlong:=pedido+linea+'RE';
codlarg:=codlong;
Form4.Height:=360;
Bitbtn3.Visible:=False;
Bitbtn1.Visible:=True;
Panel5.Visible:=false;
cargacombo();

end;

Esto es todo lo que hay, espero que te pueda servir

Saludos

Javier_A 12-02-2004 10:55:05

Solucionado
 
El problema estaba en el uso de ' Locate ' sobre la misma tabla con la que trabajaba el AfterScroll.

Funciona perfectamente


Muchas gracias y un saludo


La franja horaria es GMT +2. Ahora son las 01:54:34.

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