Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar color de seleccion en un combo (https://www.clubdelphi.com/foros/showthread.php?t=29253)

Perio 17-01-2006 15:32:55

Cambiar color de seleccion en un combo
 
Hola como estan,

Necesito cambiar el color de seleccion de un combo, en realidad es un TJvDBLookupCombo, estube buscando dentro del foro y solo encontre formas de cambiar colores en grillas y listas pero no de combos.

Saludos

Perio

roman 17-01-2006 17:20:19

Dicho un poco de memoria:

Debes poner la propiedad OwnerDraw del ComboBox en true y programar su evento OnDrawItem. Este evento te pasa el parámetro Selected que te indica si el item que se está dibujando es o no el seleccionado. Sabiendo esto, usas el método FillRect del canvas para pintar del color deseado, y luego alguno de los métodos de texto del canva para escribir el texto. Si buscas algo como "color+listbox" seguro encontrarás aquí mismo ejemplos de como dibujar los ítems de un listbox, que viene a ser igual que para un combo.

// Saludos

Perio 19-01-2006 15:27:34

Owner draw
 
Roman:

Hola, te agradesco mucho por tu respuesta, pero sigo teniendo inconvenientes ya que en los combos no encuentro la propiedad OwnerDraw para ponerla en true, ni en el inspector de objetos ni por codigo.
Desde ya muchas gracias.

Saludos desde Argentina

Perio

roman 19-01-2006 17:14:55

Cita:

Empezado por Perio
en los combos no encuentro la propiedad OwnerDraw

Ni la encontrarás :p

Anteriormente me equivoqué :o (lo decía de memoria). Es la propiedad Style, que tienes que poner en csOwnerDrawFixed.

Disculpa la confusión.

// Saludos

Perio 19-01-2006 17:33:23

Tante gracie
 
Roman:

Te agradesco tu pronta respuesta, tenias razon acerca de la propiedad style, el problema es que no es un combo convencional, se trata de un TJvDBLookupSource y éste no tiene la la propiedad Style.

Es mu raro que no la tenga ya que generalmente estos componentes son extenciones de los estandares que brinda delphi.

Voy a ver como me las arreglo.

Gracias de nuevo y saludos.

roman 19-01-2006 17:41:49

La propiedad Style aparece en TCustomComboBox como propiedad protegida así que es posible que el TJvDBLookupSource descienda directamente de TCustomComboBox en lugar de TComboBox y no publique la propiedad.

Puedes crear un descendiente de TJvDBLookupSource cuya única labor en la vida sea publicar la propiedad:

Código Delphi [-]
type
  TMIJvDBLookupSource = class(TJvDBLookupSource )
  published
    property Style;
  end;

o bien usar algún truco sucio como:

Código Delphi [-]
type THackJvDBLookupSource = class(TJvDBLookupSource );

...

THackJvDBLookupSource(JvDBLookupSource1).Style := csOwnerDrawFixed;

// Saludos

vtdeleon 19-01-2006 18:01:39

Saludos

Y de cual biblioteca es TJvDBLookupSource , la estoy buscando en JEDI y no la veo :confused:


La franja horaria es GMT +2. Ahora son las 17:45:48.

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