muy buenas tardes querido club fueron muchas las veces que me colaboraron pero ahora vengo con una pregunta un poco mas especifica veran tengo un codigo funciona bien es el siguiente:
Código:
procedure TFInventario.ProductosDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
Grid : TStringGrid;
Texto : String;
ColorCelda : TColor ;
begin
Grid := TStringGrid(Sender);
if (Arow = Fila) and ( Fila > 0 ) then
ColorCelda := $00C4EFFF
else
if (ARow < Grid.FixedRows) or (ACol < Grid.FixedCols) then
ColorCelda := $002D96FF
else
ColorCelda := clWhite ;
if (ARow < Grid.FixedRows) or (ACol < Grid.FixedCols) then
begin
Grid.Canvas.Brush.Color := ColorCelda ;
Grid.Canvas.Font.Style := [fsBold] ;
Grid.Canvas.FillRect(Rect);
Texto := Grid.Cells[ACol,ARow];
DrawText( Grid.Canvas.Handle, PChar(Texto), StrLen(PChar(Texto)), Rect, DT_CENTER ) ;
end
else
begin
Grid.Canvas.Brush.Color := ColorCelda;
Grid.Canvas.Font.Style := [] ;
Grid.Canvas.FillRect(Rect);
Texto := Grid.Cells[ACol,ARow];
DrawText( Grid.Canvas.Handle, PChar(Texto), StrLen(PChar(Texto)), Rect, DT_LEFT ) ;
end ;
end;
en verdad les ruego que lo lean para que funcione basta la variable global FILA y agregado a esto en el on select de un grid logro que la fila seleccionada se resalte funciona bien pero hay un pequeño detalle una ves que selecciono una fila del grid y le doy foco a otro objeto como ser un edit el texto de la primera celda del grid que seleccione se borra y no logro corregir ese error no se si alguien con un poco de tiempo pueda darme un concejo o una forma de hacerlo mejor por favor en verdad se los agradecere