Ver Mensaje Individual
  #2  
Antiguo 10-03-2009
Avatar de MichelH
MichelH MichelH is offline
Miembro
 
Registrado: jul 2005
Ubicación: jalisco mexico
Posts: 44
Reputación: 0
MichelH Va por buen camino
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;  // variable donde se le dara formato a los datos
begin

  // verifico que columna se va a dibujar
  if Column.FieldName = 'HoraTurno' then begin
     
     // verifico que el valor no sea nulo, para evita error
     if Column.Field.Value = Null then 
       vValue := '00:00'
     else                                 
       vValue := FormatDateTime( 'hh:mm', Column.Field.AsDateTime );

    
     // aqui dibujo el dato con el nuevo formato, con alineación centrada  
     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!!
__________________
No hay misterios, sólo hay falta de información.
Tampoco hay milagros, sólo hay hechos científicos ignorados

Última edición por MichelH fecha: 10-03-2009 a las 05:41:37.
Responder Con Cita