Tengo una solucion pero no funciona si usas la barra de scroll. Tampoco me puse a ver muy profundo. Peor es nada
Código Delphi
[-]
TMalditaGrilla = class(TDBGrid)
public
FPos : integer;
procedure Scroll(Distance: Integer); override;
end;
TForm1 = class(TForm)
Database1: TDatabase;
Table1: TTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
FMalditaGrilla : TMalditaGrilla;
FCTR : integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Table1.Filtered := false;
Table1.Filter := 'empno > 20';
Table1.Filtered := true;
Table1.First;
end;
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
Check(DbiGetExactRecordCount(Table1.Handle, FCTR));
showmessage(inttostr(FMalditaGrilla.FPos + 1)+' / '+inttostr(FCTR));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FMalditaGrilla := TMalditaGrilla.Create(self);
FMalditaGrilla.DataSource := DataSource1;
FMalditaGrilla.FPos := 0;
end;
procedure TMalditaGrilla.Scroll(Distance: Integer);
begin
inherited Scroll(Distance);
FPos := FPos + Distance;
end;
Lo que hace uno por un brindis. jajajaj