Ver Mensaje Individual
  #5  
Antiguo 16-09-2008
Avatar de Ana María
Ana María Ana María is offline
Miembro
 
Registrado: ago 2008
Posts: 40
Reputación: 0
Ana María Va por buen camino
Hola, el primer bloque de código que pongo acontinuación cambia a rojo el color de la fuente de acuerdo a ala condición que le pongas.

Para el segundo bloque necestitas agregar 2 TImage con los nombres MiFoto1 y MiFoto2 y colocar su propiedad visible a False, cargar en ellas imagenes propias para lo que necesites expresar. Al DBGrid deberás agregar una nueva columna (con el editor de columnas) dejando vacía la propiedad FieldName, lo que hará será dibujar las imágenes de las TImages en la nueva columna.

Para los dos casos deberás interceptar el evento OnDrawColumnCell del DBGrid.

Espero te sirvan de algo.

Código Delphi [-]
//caso  1

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if MiCondicion then
TDBgrid(Sender).Canvas.Font.Color := clRed;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;



//caso2

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with sender as TDBGrid do
if Column.FieldName <> '' then // Busca las columnas con campos asociados
 DefaultDrawColumnCell(Rect,DataCol,Column,State)//y no dibuja nada
 else
 if Condicion1 then // De acuerdo a la condicón
 canvas.StretchDraw(Rect,MiFoto1.Picture.Graphic)// dibuja algo
 else
  canvas.StretchDraw(Rect,MiFoto2.Picture.Graphic)// de lo contrario dibuja otra cosa
end;
Responder Con Cita