smessina,
te adjunto la rutina que pinta lo que tú pides.
Para ello, haz lo que te he comentado anteriormente. Pon un grid con font.size = 20, y copiale el código que te adjunto.
PAra el ejemplo que te pongo, necesitas una tabla que tenga los campos Nombre1, Nombre2, Concepto, FEcha, CantidadDebe y CantidadHaber. Yo he utilizado una bbdd de access para hacer la prueba.
Suerte y un saludo
<a href="http://img122.imageshack.us/my.php?image=pantallazofk3.jpg" /a>
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, ADODB;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOTable1idregistro: TAutoIncField;
ADOTable1Nombre1: TWideStringField;
ADOTable1Concepto: TWideStringField;
ADOTable1Nombre2: TWideStringField;
ADOTable1fecha: TDateTimeField;
ADOTable1Cantidaddebe: TFloatField;
ADOTable1CAntidadhaber: TFloatField;
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
public
end;
var
Form1: TForm1;
implementation
uses Types;
{$R *.dfm}
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var WRect: TRect;
begin
(Sender as TDBGrid).Canvas.Font.Size:= 8;
if DataCol =0 then
begin
WRect.Left:= Rect.Left;
WRect.Top := REct.Top + ((Rect.Bottom-Rect.Top) div 2);
WRect.Bottom := Rect.Bottom;
WRect.Right:= Rect.Right;
DBGrid1.Canvas.Rectangle(WRect); DBGRid1.Canvas.TextOut(Rect.LEft,Rect.Top+2,ADOTable1Nombre1.AsString);
DBGRid1.Canvas.TextOut( Rect.left ,Wrect.Top+2 ,ADOTable1Nombre2.AsString);
end
else
begin
WRect.Left:= Rect.Left;
WRect.Top := REct.Top + ((Rect.Bottom-Rect.Top) div 2);
WRect.Bottom := Rect.Bottom;
WRect.Right:= Rect.Right;
DBGrid1.Canvas.Rectangle(WRect); DBGRid1.Canvas.TextOut(Rect.LEft,Rect.Top+2,ADOTable1Concepto.AsString);
DBGRid1.Canvas.TextOut( Rect.left ,Wrect.Top+2 ,ADOTable1Fecha.AsString);
DBGRid1.Canvas.TextOut( Rect.left+ ((Rect.Right - Rect.Left) div 3)+50 ,Wrect.Top+2 ,ADOTable1CAntidadDEbe.AsString);
DBGRid1.Canvas.TextOut( Rect.left+ (2*(Rect.Right - Rect.Left) div 3) +50,Wrect.Top +2,ADOTable1CantidadHaber.AsString);
end;
end;
end.