Ver Mensaje Individual
  #14  
Antiguo 10-10-2014
principiodual principiodual is offline
Miembro
NULL
 
Registrado: ago 2014
Posts: 26
Reputación: 0
principiodual Va por buen camino
por ejemplo este código...

Código Delphi [-]
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;   Field: TField; State: TGridDrawState);
 begin   if gdSelected in State then     
Label1.Caption:= DBGrid1.DataSource.DataSet.FieldByName('NombreCampo').AsString; 
end;

el va a tomar solo el valor del NombreCampo en la fila donde de clic, en mi caso no es un campo fijo, sino el mismo
campo sobre el que se de clic, es decir solo tomará el valor del dato NombreCampo si se le da click encima de ese campo.
por eso no me sirve me imagino debo trabajar con alguna propiedad que use el Field pero trabaje directamente con el
valor de la celda.

Código Delphi [-]
//THackDBGrid = class(TDBGrid) //refresh datagrid data - preserve row position

 var
 rowDelta: Integer; row: integer;
 recNo: integer; ds : TDataSet;
  begin ds := THackDBGrid(DBGrid1).DataSource.DataSet;
  rowDelta := -1 + THackDBGrid(DBGrid1).Row;
  row := ds.RecNo; ds.Refresh;
  with ds do begin DisableControls;
  RecNo := row; MoveBy(-rowDelta) ;
  MoveBy(rowDelta) ;
  EnableControls;

  ShowMessage(IntToStr(rowDelta));
  ShowMessage(IntToStr(row));
  ShowMessage(IntToStr(recNo));

Este código lo encontre en otra página, pero el chico lo usa para el caso de calcular posiciones, lo he
intentado llevar a lo que quiero pero no lo entiendo del todo lamentablemente.

Última edición por principiodual fecha: 10-10-2014 a las 17:22:19.
Responder Con Cita