Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

INSERTAR BMP EN EL COLUMN->TITLE DE UN DBGRID (LEO?)

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: INSERTAR BMP EN EL COLUMN->TITLE DE UN DBGRID (LEO?) Responder citando

ESTO YA ESTA PREGUNTADO EN EL FORO PERO COMO NO HAY RESPUESTA LO PREGUNTO YO TAMBIEN, AL IGUAL QUE "YO MISMO" QUISIERA PONER UN BMP EN EL TITLE DE UN DBGRID PARA ASI AL HACER CLICK EN EL SE PONGA UN BMP("UN TRAINGULITO AL ESTILO DEL EXPLORADOR DE WINDOWS PARA MARCAR QUE SE ESTA ORDENANDO POR ESA COLUMNA. :twisted:
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

ESO MISMO ES LO QUE YO PREGUNTABA
Volver arriba
Mensaje    Asunto: Responder citando

HOLA:

La verdad, cosas raras quereis, pero bueno creo que ya he cazado el quit de la cuestion, cuando tenga un minuto libre, lo hago y lo cuelgo en los tips, OK.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Toño, te lo agradezco espero el Tip
Volver arriba
Mensaje    Asunto: Responder citando

DE p... madre toño esperamos tus respuesta ........
Volver arriba
Mensaje    Asunto: Responder citando

Aqui os paso este código:

Código:

struct TOrdenar
{
    int nColumna;
    bool fAscendente;
};


Luego en el OnTitleClick del Grid pones:

Código:

    if (Ordenar.nColumna == Column->Index)
        Ordenar.fAscendente = !Ordenar.fAscendente;
    else
        Ordenar.fAscendente = true;
        Ordenar.nColumna = Column->Index;


y ya para terminar en el OnDrawColumnCell:

Código:


    TCanvas *canvas = dynamic_cast<TDBGrid*>(Sender)->Canvas;

    TRect r(Rect);
    r.top = 0;
    r.Bottom = Rect.Height() - 2;
    InflateRect(&r, -1, -1);
    canvas->Brush->Color = clBtnFace;
    canvas->FillRect(r);

    if (DataCol == Ordenar.nColumna)
    {
        r.Right -= 14;
        if (Ordenar.fAscendente)
        {
            canvas->Pen->Color = clBtnHighlight;
            canvas->MoveTo(r.Right+1, 10);
            canvas->LineTo(r.Right+10, 10);
            canvas->LineTo(r.Right+5, 5);
            canvas->Pen->Color = clBtnShadow;
            canvas->MoveTo(r.Right+1, 10);
            canvas->LineTo(r.Right+6, 5);
        }
        else
        {
            canvas->Pen->Color = clBtnHighlight;
            canvas->MoveTo(r.Right+10, 5);
            canvas->LineTo(r.Right+1, 5);
            canvas->LineTo(r.Right+6, 10);
            canvas->Pen->Color = clBtnShadow;
            canvas->MoveTo(r.Right+10, 5);
            canvas->LineTo(r.Right+5, 10);
        }
    }

    canvas->Font = DBGrid->Font;
    DrawText(canvas->Handle, Column->Title->Caption.c_str(),
        Column->Title->Caption.Length(), &r,
        DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS);



Eso es todo. Espero que os valga.
Volver arriba
Mensaje    Asunto: Responder citando

hola,
gracias Marky y al resto de gente. Acabo de probar tu respuesta (fenomenal) y es justo algo que yo también quería hace tiempo, y aunque no era algo urgente está muy bien saberlo.
un saludo
Volver arriba
Mensaje    Asunto: Responder citando

HOLA:

Realmente sencilla, ya me estaba hiendo por las ramas, intentando sobreescribir el componente, su metodo de dibujo y todo eso, de todas formas lo seguire intentando.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: no me ordena? Responder citando

Hola,

Porque a mi no me ordena, no pasa nada solo pone el triangulito en la primera columna del DBGrid....pero nada ordena


Ayuda please....

Saludos.
Volver arriba
Mensaje    Asunto: Responder citando

Eso es porque como el titulo de la pregunta original es, "como insertar un bmp en la columna del grid (en especial el triangulito)" para hacer el ordenamiento tendras que utrilizar otro metodo que trabaje en conjunto con este; uno para el ordenamiento y otro para el aspecto....

Yo lo que hago es utilizar uin TQuery y ordenar por el campo que se hace click, no me gusta much oporque tengo que modificar la sentencia SQL y re abrir el query, en consultas pequeñas es rapido, pero en consultas grandes y mas aun si el server esta un tanto ocupado suele tardar... quisiera encontrar la forma de ordenar el propioo DataSet pero hasta la fecha no he encontrado nada...
_________________
Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.