Ver Mensaje Individual
  #7  
Antiguo 07-05-2011
mizzard mizzard is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 100
Reputación: 14
mizzard Va por buen camino
Muchisimas gracias por la respuesta, pero... sigo teneniendo un problema ...

Resulta q el texto se centra bien, pero me sale dos veces, a la izquierda y centrado

Lo que me gustaría es que se viera todo centrado tanto en la fila 0 que es fija (y en negrita) como en todos los campos.

Yo lo que hago es a partir de una serie de botones, recojo unos campos y hago que se muestren en el string grid usando:
Código:
StrGridTique->Cells[0][posFila]=DBText->Caption;
y controlando posFila voy añadiendo registros y diferentes nombres en el Caption del DBText.

Y luego en el evento hago:

Código:
void __fastcall TfrmMain::StrGridTiqueDrawCell(TObject *Sender, int ACol, int ARow,
          TRect &Rect, TGridDrawState State)
{
   TStringGrid *grid = dynamic_cast<TStringGrid*>(Sender);
   HDC dc = grid->Canvas->Handle;
   wchar_t *Cadena = grid->Cells[ACol][ARow].c_str();

   grid->Canvas->Brush->Style = bsClear;
   DrawTextW(grid->Canvas->Handle, grid->Cells[ACol][ARow].c_str(), grid->Cells[ACol][ARow].Length(), &Rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);

   StrGridTique->Canvas->Font = StrGridTique->Font;

    // Ponemos el título en negrita
    if (ACol>=0 && State.Contains(gdFixed)){
        StrGridTique->Canvas->Font->Style = TFontStyles()<< fsBold;
    }

    // Preparamos la rejilla con el tique
    const AnsiString Conceptos[3]= {"Precio unitario","Cantidad","Precio"};
    if(ARow==0 && ACol==0){
        StrGridTique->Canvas->TextOutA(Rect.Left, Rect.Top,"Producto");
    }
    else if(ARow==0){
        StrGridTique->Canvas->TextOutA(Rect.Left, Rect.Top, Conceptos[ACol-1] );
    }
    else if (ARow>0){
        tposFila=ARow;
        bEditarCantidad=true;
    }
}

Uff perdona por mi insistencia, pero es que voy dando tumbos constantemente, veo que la solución está cerca pero no consigo llegar, jeje

Muchísimas gracias por adelantado.

Un saludo!
Responder Con Cita