La Web del Programador: Comunidad de Programadores
 
    Pregunta:  6047 - COMO ADICIONAR IMAGENES A UN COMBO
Autor:  Hector Collado Fenandez
Estoy tratando de adicionarle un BMP o un ICO a un Combo pero no encuentro la forma, es decir he logrado incorporarle las imagenes, pero al adicionarle la imagen me borra el texto y no me muestra la barra de selección. Si tienes la solución te lo agradeceré infinitamente.
Gracias

  Respuesta:  Hugo Ortega Hernández
hola....

puedes usar el evento OnDrawItem...

lo primero que tienes que hacer es asignarle los bitmaps al combo.... lo puedes hacer desde un TImageList, desde archivos o como quieras.... el codigo basico es el siguiente:

ComboBox1.Items.AddObject(Elemento, Bmp);

donde Bmp es un objeto TBitMap valido obtenido de la fuente que quieras, y Elemento es la cadena que identifica al elemento del combo.... checate la ayuda del metodo addobject para mayor referencia... la idea es que a cada item se le asigna un TBitMap...

una vez asignados, en el evento OnDrawItem haces algo parecido a:

var
c : TComboBox;
ih : integer;
begin
c := Control as TComboBox;
ih = c.ItemHeight;
c.Canvas.FillRect(Rect);
c.Canvas.StretchDraw( Bounds(Rect.Left + 2, Rect.Top,
ih, ih),
c.Items->Objects[Index]);
TextOut(Rect.Left + ih + 6, Rect.Top, c.Items.Strings[Index]);

end;

bueno esa es la idea.... probablemente haya errores de sintaxis porque lo escibi directamente aqui....

ojala y te sirva...

saludos....