Ver Mensaje Individual
  #1  
Antiguo 05-08-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
¿Margen en celdas de TStringGrid?

Buenas amigos, sigo mejorando el juego de las tablas y ahora le he añadido un ranking y todo va correcto pero me gustaria crear un pequeño margen para que cuando alineo a la derecha los numeros no llegue justo al filo sino que quede un poquitin de espacio a la derecha.
Esto tengo hecho:
Código:
void __fastcall TFormRanking::StringGridRankingDrawCell(TObject *Sender,
      int ACol, int ARow, TRect &Rect, TGridDrawState State)
{
        char *cadena;
        cadena = StringGridRanking->Cells[ACol][ARow].c_str();

        if (State.Contains(gdFixed))
        {
                StringGridRanking->Canvas->Brush->Color = clBtnFace;
                StringGridRanking->Canvas->Font->Color = clWindowText;
                StringGridRanking->Canvas->FillRect(Rect);

                HDC dc = StringGridRanking->Canvas->Handle;
                DrawText(dc, cadena, strlen(cadena), &Rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE );
        }
        else if(State.Contains(gdSelected)) //if is selected use the clAqua color
        {
                StringGridRanking->Canvas->Brush->Color = clWindow;
                StringGridRanking->Canvas->Font->Color = clWindowText;
                StringGridRanking->Canvas->FillRect(Rect);

                HDC dc = StringGridRanking->Canvas->Handle;
                if(ACol == 1)
                        DrawText(dc, cadena, strlen(cadena), &Rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE );
                else
                        DrawText(dc, cadena, strlen(cadena), &Rect, DT_RIGHT | DT_VCENTER | DT_SINGLELINE );
        }
        else if (ARow %2 == 0)
        {
                StringGridRanking->Canvas->Brush->Color = clSilver;
                StringGridRanking->Canvas->Font->Color = clWindowText;
                StringGridRanking->Canvas->FillRect(Rect);

                HDC dc = StringGridRanking->Canvas->Handle;
                if(ACol == 1)
                        DrawText(dc, cadena, strlen(cadena), &Rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE );
                else
                        DrawText(dc, cadena, strlen(cadena), &Rect, DT_RIGHT | DT_VCENTER | DT_SINGLELINE );
        }
        else
        {
                StringGridRanking->Canvas->Brush->Color = StringGridRanking->Color;
                StringGridRanking->Canvas->Font->Color = StringGridRanking->Font->Color;
                StringGridRanking->Canvas->FillRect(Rect);

                HDC dc = StringGridRanking->Canvas->Handle;
                if(ACol == 1)
                        DrawText(dc, cadena, strlen(cadena), &Rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE );
                else
                        DrawText(dc, cadena, strlen(cadena), &Rect, DT_RIGHT | DT_VCENTER | DT_SINGLELINE );
        }
}
¿Como puedo hacer eso?
Responder Con Cita