Que tal Tato!
Claro que se puede, esto se hace en el Evento
OnDrawColumnCell del mismo
DBGrid, esto yo lo uso para dale formato a cualquier tipo de datos como hora, fecha, importes monetarios, etc. Basicamente lo que haces en este Evento es redibujar los datos, y se manda llamar cada que se dibuja una columna de tu DBGrid. Yo lo uso de la siguiente forma:
Código Delphi
[-]
procedure TFormClientes.RxDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
vValue : String; begin
if Column.FieldName = 'HoraTurno' then begin
if Column.Field.Value = Null then
vValue := '00:00'
else
vValue := FormatDateTime( 'hh:mm', Column.Field.AsDateTime );
with RxDBGrid1 do
TextRect( Rect, ( Rect.Left + Rect.Right - TextWidth( vValue ) ) div 2, ( ( Rect.Bottom - TextHeight( vValue ) ) + Rect.Top ) div 2, vValue );
end;
end;
si quieres el codigo de las demas alineaciones son estas:
Alineación a la derecha:
Código Delphi
[-]
with RxDBGrid1 do
TextRect( Rect, Rect.Right - TextWidth( vValue + ' ' ), ( ( Rect.Bottom - TextHeight( vValue ) ) + Rect.Top ) div 2, vValue );
Alineación a la izquierda:
Código Delphi
[-]
with RxDBGrid1 do
TextRect( Rect, Rect.Left + TextWidth(' '), ( ( Rect.Bottom - TextHeight( vValue ) ) + Rect.Top ) div 2, vValue );
Por cierto yo mas bien uso el RxDBGrid de la libreria de componentes RX, te los recomiendo mucho traen varios componentes muy monos que me han hecho la vida mas facil y me han sacado de varios apuros.
Saludos!!