Para crear los Items multicolores en un combobox se debe indicar la propiedad RowSourceType = 9 && Popup, y la propiedad de RowSource lleva el nombre con el que se define el popup (Sin comillas).
Los pasos a seguir son los siguientes:
1. Creado el formulario que lo contiene, colocar el siguiente código en el evento Load del formulario:
#DEFINE RedBar RGB(128,0,0)
#DEFINE GreenBar RGB(0,128,0)
#DEFINE BlueBar RGB(0,0,255)
#DEFINE YellowBar RGB(255,255,0)
DEFINE POPUP MultiColor
DEFINE BAR 1 OF MultiColor PROMPT "Rojo" COLOR ,RedBar
DEFINE BAR 2 OF MultiColor PROMPT "Verde" COLOR ,GreenBar
DEFINE BAR 3 OF MultiColor PROMPT "Azul" COLOR ,BlueBar
DEFINE BAR 4 OF MultiColor PROMPT "Amarillo" COLOR ,YellowBar
2. Agregadoo el objeto ComboBox indicar las propiedades siguientes: ROWSOURCETYPE = 9 && Popup
ROWSOURCE = "Multicolor" && (sin las comillas)
3. En el evento de Valid del ComboBox, poner el código siguiente: DO CASE
CASE THIS.VALUE = "Rojo"
THIS.FORECOLOR = RedBar
CASE THIS.VALUE = "Verde"
THIS.FORECOLOR = GreenBar
CASE THIS.VALUE = "Azul"
THIS.FORECOLOR = BlueBar
CASE THIS.VALUE = "Amarillo"
THIS.FORECOLOR = YellowBar
ENDCASE
Cuando se ejecute el formulario al pulsar el combo se despliegan los items con sus respectivos colores.Dario David Puccio
Nota del editor: El siguiente es un ejemplo completo de esta técnica
PUBLIC oMiForm
oMiForm=NEWOBJECT("MiForm")
oMiForm.SHOW
RETURN
DEFINE CLASS MiForm AS FORM
AUTOCENTER = .T.
CAPTION = "Combo Multicolor"
NAME = "MiForm"
ADD OBJECT combo1 AS COMBOBOX WITH ;
ROWSOURCETYPE = 9, ROWSOURCE = "Multicolor", ;
HEIGHT = 24, LEFT = 24, TOP = 24, WIDTH = 132, ;
NAME = "Combo1"
PROCEDURE LOAD
#DEFINE RedBar RGB(128,0,0)
#DEFINE GreenBar RGB(0,128,0)
#DEFINE BlueBar RGB(0,0,255)
#DEFINE YellowBar RGB(255,255,0)
DEFINE POPUP MultiColor
DEFINE BAR 1 OF MultiColor PROMPT "Rojo" COLOR ,RedBar
DEFINE BAR 2 OF MultiColor PROMPT "Verde" COLOR ,GreenBar
DEFINE BAR 3 OF MultiColor PROMPT "Azul" COLOR ,BlueBar
DEFINE BAR 4 OF MultiColor PROMPT "Amarillo" COLOR ,YellowBar
ENDPROC
PROCEDURE INIT
THIS.Combo1.LISTINDEX = 1
THIS.Combo1.VALID
ENDPROC
PROCEDURE combo1.VALID
DO CASE
CASE THIS.VALUE = "Rojo"
THIS.FORECOLOR = RedBar
CASE THIS.VALUE = "Verde"
THIS.FORECOLOR = GreenBar
CASE THIS.VALUE = "Azul"
THIS.FORECOLOR = BlueBar
CASE THIS.VALUE = "Amarillo"
THIS.FORECOLOR = YellowBar
ENDCASE
ENDPROC
ENDDEFINE
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.