Mensaje    Asunto: Variar la posición del texto en un TDBGrid Responder citando

Mediante este ejemplo se puede cambiar la posición del texto de las celdas en un TDBGrid. Hay que ponerlo en el evento OnDrawColumnCell:

Caso 1.Centrado Verticalmente y alineado a la izquierda
Código:

TCanvas *canvas = dynamic_cast<TDBGrid*>(Sender)->Canvas;
TRect r(Rect);
canvas->FillRect(r);
canvas->Font = DBGrid->Font;
canvas->Font->Color = clWindowText;
 if(State.Contains(gdSelected))
       canvas->Font->Color = clWhite;
DrawText(canvas->Handle, Column->Field->AsString.c_str(),
      Column->Field->AsString.Length(), &r,
       DT_SINGLELINE | DT_VCENTER | DT_END_ELLIPSIS);

Caso 2.Centrado Verticalmente y centrado horizontalmente
Código:

   DrawText(canvas->Handle, Column->Field->AsString.c_str(),
        Column->Field->AsString.Length(), &r,
        DT_SINGLELINE |DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS);


Se pueden hacer las combinaciones que se quieran:

DT_RIGHT-->Alinea a a la derecha
DT_TOP -->Alinea al borde superior
etc.

Para ver las opciones mirar la ayuda