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 ENDDEFINEPodemos 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.