Ver Mensaje Individual
  #1  
Antiguo 14-04-2010
serebi serebi is offline
Miembro
 
Registrado: ago 2005
Posts: 17
Reputación: 0
serebi Va por buen camino
Ayuda con codigo ondraw

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
Responder Con Cita