Hola.
He visto que varios han preguntado por la posibilidad de posicionarse en determinadas columnas y filas de un TDBGrid e hice un código
con algunos trucos 'sucios' para lograrlo.
No lo ví en la sección trucos así que decidí ponerlo aquí por si le sirve a alguien:
Código Delphi
[-]
type
TDBGridExt = Class(TDBGrid);
TForm1 = class(TForm)
...
DBGrid1: TDBGrid;
...
private
function DBgridColFil(ACol,AFil: integer; GE: TDBGridExt): string;
public
end;
...
implementation
...
function TForm1.DBgridColFil(ACol, AFil: integer; GE: TDBGridExt): string;
begin
Result:= '';
GE.DataSource.DataSet.MoveBy(1 - GE.Row); if (AFil > 0)and(ACol > 0)and(AFil < GE.RowCount)and(ACol < GE.ColCount) then
begin
GE.DataSource.DataSet.MoveBy(Afil-1); GE.Refresh;
GE.FocusCell(ACol,AFil,True); GE.SetFocus;
Result:= GE.SelectedField.AsString;
end
else
raise Exception.Create('Selección fuera de rango');
end;
Ejeplo de uso:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption:= DBGridColFil(2, 3, TDBGridExt(DBGrid1));
end;
Si Algún moderador cree que vale la pena, subo el código con un ejemplo funcional donde me indiquen.
Un saludo.
![Smilie](http://www.clubdelphi.com/foros/images/smilies/smile.gif)