Ver Mensaje Individual
  #3  
Antiguo 04-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Reputación: 19
gabrielkc Va por buen camino
Puedes hacerlo con un stringgrid, te tocaría dibujar todos los datos... pero así aseguras el resultado.

primero sería cargar los datos en el stringgrid con un while a tu dataset, sería bueno que cancelaras la actualización del componente en lo que cargas los datos para que sea menos tardado y al final llamar el evento Paint del stringgrid.

para dibujar en el stringgrid se hace:

*la propiedad defaultdraw a false.
* en el Evento OnDrawCell harias

Código Delphi [-]
procedure Form1.StringGird1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
 with StringGird1 do //con el stringgrid hacer
  begin
   if ARow=RowCount-1 then  ///Si es la última fila
    Canvas.Brush.Color:=StringGird1.FixedColor
   else
    Canvas.Brush.Color:=StringGird1.clWindow;
  with Canvas do  ///con el canvas del stringgrid1 hacer
   begin
    FillRect(Rect);//Rellenamos la Celda del color correspondiente
    DrawText(Handle,PChar(StringGrid.Cells[ACol,ARow]),-1,Linea,DT_CENTER);//dibujamos el Texto
   end;
end;

Tendrías que jugar con el procedimiento para darle el efecto tridimencional a la celda de los títulos y la alineación de la informacion, en el ejemplo se alinea al centro.
Responder Con Cita