Podemos añadir imágenes a los elementos de un control ListBox o ComboBox, configurando la propiedad Picture de estos controles.
Si se configura la propiedad Picture con un valor único de propiedad, todos los elementos del control mostrarán la misma imagen (ListBox a la izquierdo de la Figura 1). Si se configura la propiedad Picture como una matriz, se puede almacenar una imagen para cada elemento de la lista, y cada elemento puede tener una imagen distinta (ListBox y ComboBox a la derecha de la Figura 1).

Figura 1.
El siguiente código muestra el formulario de la Figura 1.
PUBLIC goMiForm
goMiForm = CREATEOBJECT("MiForm")
goMiForm.SHOW(1)
RETURN
DEFINE CLASS MiForm AS FORM
HEIGHT = 232
WIDTH = 496
AUTOCENTER = .T.
SHOWWINDOW = 2
CAPTION = "Imágenes en controles ListBox y ComboBox"
NAME = "MiForm"
ICON = HOME(1) + "Graphics\Icons\Misc\face02.ico"
ADD OBJECT lstLista1 AS LISTBOX WITH ;
HEIGHT = 208, LEFT = 12, TOP = 12, WIDTH = 150, ;
INTEGRALHEIGHT = .T., NAME = "lstLista1"
ADD OBJECT lstLista2 AS LISTBOX WITH ;
HEIGHT = 208, LEFT = 170, TOP = 12, WIDTH = 150, ;
INTEGRALHEIGHT = .T., NAME = "lstLista2"
ADD OBJECT cmbCombo AS COMBOBOX WITH ;
HEIGHT = 24, LEFT = 330, TOP = 12, WIDTH = 150, ;
STYLE = 2, NAME = "cmbCombo"
*--
PROCEDURE INIT
LOCAL lcDir, ln, lnItems
lcDirBmp = HOME(1) + "Graphics\Bitmaps\Outline\Nomask\"
WITH THISFORM
.ADDPROPERTY("la(1)")
lnItems = ADIR(.la,lcDirBmp + "*.bmp")
*-- Items e imagen igual para todos los elementos
.lstLista1.ROWSOURCETYPE = 5 && Matriz
.lstLista1.ROWSOURCE = "ThisForm.la"
.lstLista1.PICTURE = lcDirBmp + "Bmp.Bmp"
FOR ln = 1 TO lnItems
*-- Items e imágenes para cada elemento del ListBox
.lstLista2.ADDITEM(.la(ln,1),ln)
.lstLista2.PICTURE(ln) = lcDirBmp + .la(ln,1)
*-- Items e imágenes para cada elemento del ComboBox
.cmbCombo.ADDITEM(.la(ln,1),ln)
.cmbCombo.PICTURE(ln) = lcDirBmp + .la(ln,1)
ENDFOR
.lstLista1.LISTINDEX = 1
.lstLista2.LISTINDEX = 1
.cmbCombo.LISTINDEX = 1
ENDWITH
ENDPROC
ENDDEFINE
Podemos ver otro caso de imagenes en un control ListBox, en los ejemplos Solutions de Visual FoxPro, ejecutando el siguiente formulario:DO FORM (HOME(2) + "\Solution\Controls\Lists\PicList.scx")
Luis María Guayán
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.