Pregunta: | 12440 - COLORES EN STRINGGRID |
Autor: | Tavinho OP |
Hola amigos, estoy utilizando stringGrid para editar algunos campos númericos, y resulta que deseo que algunos montos de las celdas esten en diferentes colores de acuerdo a un rango y ademas resaltar la fila que se esta editando y pintar el fondo, ocultar y que solo sean de solo lectura las diferentes columnas.
muchas gracias por tu ayuda. chau. |
Respuesta: | Luis Fernandez |
Bajate las Librerias RXLib (hay para todas las versiones de Delphi) que son gratuitas y una pasada.En ellas hay un componente RXDBGrid con el que puedes hacer todo lo que quieres y mas con tres lines de programación.Yo las tengo pero creo mas etico que acudas a la página de sus autores. Suerte |
Respuesta: | Miguel Sandro Lucero |
Para colorear celdas en StringGrid:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var dx: Integer; begin with (Sender as TStringGrid) do begin // Don't change color for first Column, first row if (ACol = 0) or (ARow = 0) then Canvas.Brush.Color := clBtnFace else begin case ACol of 1: Canvas.Font.Color := clBlack; 2: Canvas.Font.Color := clBlue; end; // Draw the Band if ARow mod 2 = 0 then Canvas.Brush.Color := $00E1FFF9 else Canvas.Brush.Color := $00FFEBDF; Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]); Canvas.FrameRect(Rect); end; end; end; Para hacer una columna de solo lectura: (sacado de http://www.marteens.com/trick30.htm y adaptado para stringgrid) procedure TForm1.Grid1EnterCell(Sender: TObject); begin if Grid1.Col = ElCampoSoloLectura then Grid1.Options := Grid1.Options - [dgEditing] else Grid1.Options := Grid1.Options + [dgEditing]; end; |