Mensaje    Asunto: Redimiensionar las Columnas del DBGrid Responder citando

Buscando un poco por la red encontre una pagina para Redimensionar las columnas dentro de un DBGrid, asi que me puse a la tarea de Convertirlo de Delphi a c++ builder y funciona correctamente.

para usarse, se establece en el Evento OnResize del Form donde se encuentra el DBGrid.

Código:
void __fastcall TFNota_Venta::FormResize(TObject *Sender)
{
   ::AutoSizeGrid(this->dbgDetalleVenta);
}
//---------------------------------------------------------------------------


y el codigo de la función es el siguiente


Código:

void __fastcall AutoSizeGrid(TDBGrid *dbGrid)
{

      int   TotalColumnWidth,   ColumnCount,   GridClientWidth,   Filler,   i;
      ColumnCount   =   dbGrid->Columns->Count;
      if(ColumnCount   ==   0   )   return;

      TotalColumnWidth   =   0;
      for(i=0;i<ColumnCount;i++)
           TotalColumnWidth   +=   dbGrid->Columns->Items[i]->Width;
      if(dbGrid->Options.Contains(dgColLines))
           TotalColumnWidth   +=   ColumnCount;

      GridClientWidth   =   dbGrid->Width   +   GetSystemMetrics(SM_CXVSCROLL);
      if(dbGrid->Options.Contains(dgIndicator))
      {
           GridClientWidth   -=IndicatorWidth;
           if(dbGrid->Options.Contains(dgColLines))
               GridClientWidth--;
      }
      if(dbGrid->BorderStyle   ==   bsSingle)
      {
           if(dbGrid->Ctl3D   ==   true)
               GridClientWidth   =   GridClientWidth-5;
           else
               GridClientWidth   =   GridClientWidth-3;
      }
      if(TotalColumnWidth   <   GridClientWidth)
      {
           Filler   =   (GridClientWidth-TotalColumnWidth)/ColumnCount;
           for(i=0;i<ColumnCount;i++)
               dbGrid->Columns->Items[i]->Width   +=   Filler;
      }
      else if(TotalColumnWidth   >   GridClientWidth)
          {
               Filler   =   (TotalColumnWidth-GridClientWidth)/ColumnCount;
               if((TotalColumnWidth-GridClientWidth)%ColumnCount   !=   0)
                    Filler++;
               for(i=0;i<ColumnCount;i++)
                    dbGrid->Columns->Items[i]->Width   -=   Filler;
          }
}

_________________
Cool