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 ,YellowBar2. 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 ENDCASECuando 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.