Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2005
Ictiandro Ictiandro is offline
Miembro
 
Registrado: jul 2005
Posts: 13
Poder: 0
Ictiandro Va por buen camino
Establecer características de texto en cabecera de un TListView

Hola chicos.
Tengo un problema. Estoy desarrollando una aplicación donde se utiliza un TListView. Este ListView se muestra con una cebecera, es decir ListView.ViewStyle=vsReport. Quisiera saber que es lo que debo hacer para que el texto de la cabecera del ListView tenga características diferentes del resto de las filas (no cabecera) del ListView. Para ser más puntual: El color del texto de la cabecera debe ser azul y tiene que estar en negrita, el resto de las filas deben tener texto color negro y sin negrita.
Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 06-09-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Te iba a remitir a este hilo pero ¿qué crees?

En el código de ese hilo adapta el método WMNotify así:


Código Delphi [-]
procedure TListView.WMNotify(var Msg: TWMNotify);
var
  Header: HWnd;
  CustomDraw: PNMCustomDraw;
  HeaderFont: TFont;

begin
  // obtener el identificador del header
  Header := Perform(LVM_GETHEADER, 0, 0);

  if (Msg.NMHdr.code = NM_CUSTOMDRAW) and (Msg.NMHdr.hwndFrom = Header) then
  begin
    // estructura de datos con información para el pintado
    CustomDraw := PNMCustomDraw(Msg.NMHdr);

    case CustomDraw.dwDrawStage of
      CDDS_PREPAINT:
        // se le dice a Windows que queremos notificaciones para cada item
        Msg.Result := CDRF_NOTIFYITEMDRAW;

      CDDS_ITEMPREPAINT:
        (*
          dwItemSpec es el índice del item del encabezado (columna)
          que queremos pintar- en este caso 1
        *)

        if CustomDraw.dwItemSpec = 1 then
        begin
          HeaderFont := TFont.Create;

          try
            HeaderFont.Style := [fsBold];
            Windows.SelectObject(CustomDraw.hdc, HeaderFont.Handle);
            Windows.SetTextColor(CustomDraw.hdc, clBlue);

            //Windows.SetBkColor(CustomDraw.hdc, $00FF8080);
          finally
            HeaderFont.Free;
          end;
        end;
    end;
  end;
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 06-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Quiere decirse que yo me quedé con la boca abierta.

Probablemente otros también, por eso añadí más muñequitos .
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 06-09-2005
Ictiandro Ictiandro is offline
Miembro
 
Registrado: jul 2005
Posts: 13
Poder: 0
Ictiandro Va por buen camino
Otra vez, Muchas gracias Roman. Me haces la vida mas facil , espero poder aprender las cosas que sabes para así también poder ayudar a otras personas... Bueno quizas con el tiempo y la practica...
Responder Con Cita
  #5  
Antiguo 06-09-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, muchas veces la ayuda no es por las cosas que sé, sino por las cosas que encuentro. Tal es el presente caso y el del mensaje citado. Te soprenderá la cantidad de información que puedes encontrar en sitios como los foros de Borland.

// Saludos
Responder Con Cita
  #6  
Antiguo 06-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. No creo que se trate de hacer la rueda a nadie, así que voy a seguir. Lo que se necesita para encontrar es buscar, esto está claro. Pero uno puede buscar y darse de narices con lo que precisa y no verlo, sencillamente, por aquello que dicen de que el que no sabe es como el que no ve. Esto es tan viejo como el mundo.

¿Cómo va uno a buscar/encontrar algo sin tener ni idea de lo que es? Así pues, sea como fuere, en lo que a mí respecta el que encontraras algo (porque lo buscaste, lo comprendiste y lo supiste implementar) tal que diera la solución a la cuestión que se planteaba no es cosa de poco, no es desdeñable, no, pero todo lo contrario.

¿Y a qué viene esto? ¿A qué decir lo que he dicho? Bueno, ¿y tú, que esto lees, nunca dijiste nada que acaso no viniera muy a cuento? ¿nunca quisiste incluso decir algo que no viniera a cuento en absoluto? ¡Pues no sabes lo que te pierdes! ¡Hay que dar rienda a lo que uno quiere decir! ¡La cosa húmeda no puede estarse quieta a las veces! Y ya he dicho que estudié mecanografía tres años y escribo como por inercia,... y basta.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 17-08-2006
Avatar de Francisco Rguez
Francisco Rguez Francisco Rguez is offline
No confirmado
 
Registrado: ago 2005
Posts: 7
Poder: 0
Francisco Rguez Va por buen camino
Question Y con XP?

El código funciona perfectamente si los temas de XP no están activos. ¿Hay alguna forma de que funcione así?
Gracias, y propicios días.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:04:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi