Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How can I enable radio buttons if a textbox has certain text
#1
I want to enable the buttons 1007 and 1008  while textbox "nombre_de_paquete" value starts with "PBUIPLA"

 
Code:
Copy      Help
 
 inicio
str dd=
 BEGIN DIALOG
 0 "" 0x90C80AC8 0x0 0 0 458 254 "Dialog" "4"
 1 Button 0x54030001 0x4 344 234 48 14 "Aceptar"
 1001 ComboBox 0x54230243 0x0 96 184 124 213 ""
 1002 Static 0x54000000 0x0 12 168 76 12 "Tipo de solicitud:"
 1003 Button 0x54002009 0x0 96 168 48 10 "Promote"
 1004 Button 0x54002009 0x0 160 168 58 10 "Demote"
 1005 Static 0x54000000 0x0 228 152 56 12 "Tipo de paquete: "
 3 Static 0x54000000 0x0 12 8 438 68 "Asegúrse de cumplir con los siguientes criterios antes de correr la macro:[][]*Tener una sesión abierta y refrescada de Harvest.[]*Tener una sesión abierta y refrescada de Citrix.[]*Tener una sesión abierta y refrescada de la carpeta de red DD.[]*Que el paquete a promover se encuentre listo para promoverse en Harves.[][]Si cumple con los criterios, capture la siguiente información:"
 4 Edit 0x54030080 0x200 40 83 44 13 ""
 5 Static 0x54000000 0x0 12 83 20 13 "Folio:"
 6 Static 0x54000000 0x0 12 100 122 13 "Nombre del requerimiento (Sin folio):"
 7 Edit 0x54030080 0x200 12 116 436 30 ""
 8 Static 0x54000000 0x0 12 152 76 12 "Nombre del paquete:"
 9 Edit 0x54030080 0x200 96 152 124 12 "nombre_de_paquete"
 10 Static 0x54000000 0x0 12 200 436 29 "En cuanto dé clic en el botón Aceptar, correrá una macro que automatizará el proceso de promoción de un paquete, favor de no manipular el teclado o mouse para evitar comportamientos inesperados.[]En el proceso se crearán carpetas y archivos necesarios para la solicitud de gestión de versión."
 11 Static 0x54000000 0x0 12 184 76 12 "Tipo de promoción:"
 2 Button 0x54030000 0x4 400 234 48 14 "Cancelar"
 1007 Button 0x54002009 0x0 288 152 58 10 "Carga Inicial"
 1008 Button 0x54002009 0x0 352 152 58 10 "Rollback"
 1006 Button 0x54020007 0x0 224 144 220 26 ""
 END DIALOG
 DIALOG EDITOR: "" 0x2040C00 "*" "0" "" ""

str controls = "1001 1003 1004 4 7 9 1007 1008"
str cb1001 o1003Pro o1004Dem e4 e7 e9nom o1007Car o1008Rol
str ruta_local paquete aplicacion aplicacion_aux
cb1001="Promover[]Instalar[]Ejecutar[]Promover e Instalar[]Promover, Instalar y Ejecutar"
aplicacion=""
if(!ShowDialog(dd &sub.DlgProc &controls)) ret


#sub DlgProc
function# hDlg message wParam lParam
TO_Enable hDlg "1007" 0
TO_Enable hDlg "1008" 0
sel message
case WM_INITDIALOG
case WM_DESTROY
case WM_COMMAND goto messages2
ret
 messages2
sel wParam
case IDOK
case IDCANCEL
case 1004 ;;Demote
if(IsDlgButtonChecked(hDlg 1004))
TO_Enable hDlg "1001" 0
case 1003 ;;Promote
if(IsDlgButtonChecked(hDlg 1003))
TO_Enable hDlg "1001" 1


ret 1
#2
Solved  Cool


 inicio
str dd=
 BEGIN DIALOG
 0 "" 0x90C80AC8 0x0 0 0 458 254 "Dialog" "4"
 1 Button 0x54030001 0x4 344 234 48 14 "Aceptar"
 1001 ComboBox 0x54230243 0x0 96 184 124 213 ""
 1002 Static 0x54000000 0x0 12 168 76 12 "Tipo de solicitud:"
 1003 Button 0x54002009 0x0 96 168 48 10 "Promote"
 1004 Button 0x54002009 0x0 160 168 58 10 "Demote"
 1005 Static 0x54000000 0x0 228 152 56 12 "Tipo de paquete: "
 3 Static 0x54000000 0x0 12 8 438 68 "Asegúrse de cumplir con los siguientes criterios antes de correr la macro:[][]*Tener una sesión abierta y refrescada de Harvest.[]*Tener una sesión abierta y refrescada de Citrix.[]*Tener una sesión abierta y refrescada de la carpeta de red DD.[]*Que el paquete a promover se encuentre listo para promoverse en Harvest.[][]Si cumple con los criterios, capture la siguiente información:"
 4 Edit 0x54030080 0x200 40 83 44 13 ""
 5 Static 0x54000000 0x0 12 83 20 13 "Folio:"
 6 Static 0x54000000 0x0 12 100 122 13 "Nombre del requerimiento (Sin folio):"
 7 Edit 0x54030080 0x200 12 116 436 30 ""
 8 Static 0x54000000 0x0 12 152 76 12 "Nombre del paquete:"
 9 Edit 0x54030080 0x200 96 152 124 12 "nombre_de_paquete"
 10 Static 0x54000000 0x0 12 200 436 29 "En cuanto dé clic en el botón Aceptar, correrá una macro que automatizará el proceso de promoción de un paquete, favor de no manipular el teclado o mouse para evitar comportamientos inesperados.[]En el proceso se crearán carpetas y archivos necesarios para la solicitud de gestión de versión."
 11 Static 0x54000000 0x0 12 184 76 12 "Tipo de promoción:"
 2 Button 0x54030000 0x4 400 234 48 14 "Cancelar"
 1007 Button 0x54002009 0x0 288 152 58 10 "Carga Inicial"
 1008 Button 0x54002009 0x0 352 152 58 10 "Rollback"
 1006 Button 0x54020007 0x0 224 144 220 26 ""
 END DIALOG
 DIALOG EDITOR: "" 0x2040C00 "*" "0" "" ""

str controls = "1001 1003 1004 4 7 9 1007 1008"
str cb1001 o1003Pro o1004Dem e4 e7 e9nom o1007Car o1008Rol
str ruta_local paquete aplicacion aplicacion_aux
cb1001="Promover[]Instalar[]Ejecutar[]Promover e Instalar[]Promover, Instalar y Ejecutar"
aplicacion=""
if(!ShowDialog(dd &sub.DlgProc &controls)) ret

#sub DlgProc
function# hDlg message wParam lParam
 TO_Enable hDlg "1007" 0
 TO_Enable hDlg "1008" 0
sel message
    case WM_INITDIALOG
    TO_Enable hDlg "1007" 0
    TO_Enable hDlg "1008" 0
    case WM_DESTROY
    case WM_COMMAND goto messages2

ret
 messages2
sel wParam
    case IDOK
    case IDCANCEL
    case 1004 ;;Demote
    if(IsDlgButtonChecked(hDlg 1004))
        TO_Enable hDlg "1001" 0
    case 1003 ;;Promote
    if(IsDlgButtonChecked(hDlg 1003))
        TO_Enable hDlg "1001" 1
    case EN_CHANGE<<16|9
    TO_Enable hDlg "1007" 0
    TO_Enable hDlg "1008" 0
    str s.getwintext(id(9 hDlg)) aux
    if(aux.left(s,7)="PBUIPLA")
        TO_Enable hDlg "1007" 1
        TO_Enable hDlg "1008" 1
     if(s.len>3) s.fix(3); s.setwintext(id(9 hDlg))

ret 1
#3
You can do things a bit differently. You can eliminate a lot of code. 
#1 if you set the style of buttons 1007 and 1008 to WS_DISABLED then you don't need to disable them on dialog start.
#2 This code is not needed. if(IsDlgButtonChecked(hDlg 1004)) <-----not needed as this is an option button
#3 This code can be made into one line. 
TO_Enable hDlg "1007" 0  
TO_Enable hDlg "1008" 0
all fixes shown below in code.
Code:
Copy      Help
str dd=
;BEGIN DIALOG
;0 "" 0x90C80AC8 0x0 0 0 458 254 "Dialog" "4"
;1 Button 0x54030001 0x4 344 234 48 14 "Aceptar"
;1001 ComboBox 0x54230243 0x0 96 184 124 213 ""
;1002 Static 0x54000000 0x0 12 168 76 12 "Tipo de solicitud:"
;1003 Button 0x54002009 0x0 96 168 48 10 "Promote"
;1004 Button 0x54002009 0x0 160 168 58 10 "Demote"
;1005 Static 0x54000000 0x0 228 152 56 12 "Tipo de paquete: "
;3 Static 0x54000000 0x0 12 8 438 68 "Asegúrse de cumplir con los siguientes criterios antes de correr la macro:[][]*Tener una sesión abierta y refrescada de Harvest.[]*Tener una sesión abierta y refrescada de Citrix.[]*Tener una sesión abierta y refrescada de la carpeta de red DD.[]*Que el paquete a promover se encuentre listo para promoverse en Harvest.[][]Si cumple con los criterios, capture la siguiente información:"
;4 Edit 0x54030080 0x200 40 83 44 13 ""
;5 Static 0x54000000 0x0 12 83 20 13 "Folio:"
;6 Static 0x54000000 0x0 12 100 122 13 "Nombre del requerimiento (Sin folio):"
;7 Edit 0x54030080 0x200 12 116 436 30 ""
;8 Static 0x54000000 0x0 12 152 76 12 "Nombre del paquete:"
;9 Edit 0x54030080 0x200 96 152 124 12 "nombre_de_paquete"
;10 Static 0x54000000 0x0 12 200 436 29 "En cuanto dé clic en el botón Aceptar, correrá una macro que automatizará el proceso de promoción de un paquete, favor de no manipular el teclado o mouse para evitar comportamientos inesperados.[]En el proceso se crearán carpetas y archivos necesarios para la solicitud de gestión de versión."
;11 Static 0x54000000 0x0 12 184 76 12 "Tipo de promoción:"
;2 Button 0x54030000 0x4 400 234 48 14 "Cancelar"
;1007 Button 0x5C002009 0x0 288 152 58 10 "Carga Inicial"
;1008 Button 0x5C002009 0x0 352 152 58 10 "Rollback"
;1006 Button 0x54020007 0x0 224 144 220 26 ""
;END DIALOG
;DIALOG EDITOR: "" 0x2040C00 "*" "0" "" ""

str controls = "1001 1003 1004 4 7 9 1007 1008"
str cb1001 o1003Pro o1004Dem e4 e7 e9nom o1007Car o1008Rol
str ruta_local paquete aplicacion aplicacion_aux
cb1001="Promover[]Instalar[]Ejecutar[]Promover e Instalar[]Promover, Instalar y Ejecutar"
aplicacion=""
if(!ShowDialog(dd &sub.DlgProc &controls)) ret

#sub DlgProc
function# hDlg message wParam lParam

sel message
,case WM_INITDIALOG
,case WM_DESTROY
,case WM_COMMAND goto messages2
ret
;messages2
sel wParam
,case IDOK
,case IDCANCEL
,case 1004 ;;Demote
,TO_Enable hDlg "1001" 0
,case 1003 ;;Promote
,TO_Enable hDlg "1001" 1
,case EN_CHANGE<<16|9
,str s.getwintext(id(9 hDlg)) aux
,if(aux.left(s,7)="PBUIPLA")
,,TO_Enable hDlg "1007 1008" 1
,else
,,TO_Enable hDlg "1007 1008" 0
ret 1


Forum Jump:


Users browsing this thread: 1 Guest(s)