Jump to content

Allow Edit Checkbox / Radio Button that shows other buttons


Recommended Posts

Good Morning,

I hope someone can help, below is a stripped down version of my current .au3 file and there is a few bits I just cant for the life of me get to work;

1. I would like the 'Allow Edit' checkbox once checked to allow the user to edit the contents of the 'AD Group Name' input box

2. I would like the 'Other / Internal Use' radio button if checked to show the '$OtherInternalGroup' group of radio buttons

My current code.....

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIShellEx.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <WinAPI.au3> ; used for Lo/Hi word




; Declare Global variables for WM_COMMAND and '_GetAppName()' function.
Global $__iComboWrite = 9999, $__iInputValue = 9999, $__iInputWrite = 9999


#Region ### START GUI section ###
$Form1_1 = GUICreate("Packaging Wrapper", 435, 545, -1, -1)
GUISetIcon("C.ico", -1)
GUISetBkColor(0xFFFFFF)
Global $ApplicationNameInput = GUICtrlCreateInput("", 24, 168, 385, 21)
GUICtrlSetTip(-1, "EG: Corel_WinZip_21.0_0.1")
$ADGroupNameInput = GUICtrlCreateInput("", 24, 224, 385, 21)
$AllowEditChk = GUICtrlCreateCheckbox("Allow Edit", 344, 200, 65, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_RIGHT))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeGroup = GUICtrlCreateGroup("", 24, 272, 185, 113)
$CatalogueAppChk = GUICtrlCreateRadio("Catalogue Application", 32, 288, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$NonCatalogueAppChk = GUICtrlCreateRadio("Non-Catalogue Application", 32, 320, 161, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$OtherAppChk = GUICtrlCreateRadio("Other / Internal Use", 32, 352, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
; $OtherInternalGroup = GUICtrlCreateGroup("", 216, 272, 193, 113)
$OSCoreApplicationChk = GUICtrlCreateRadio("OS Core Application", 224, 288, 129, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$InternalOnlyChk = GUICtrlCreateRadio("Internal ONLY Application", 224, 320, 161, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$OtherInternalLabel = GUICtrlCreateLabel("Other / Internal Use", 216, 256, 118, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmGroup = GUICtrlCreateGroup("", 24, 392, 385, 89)
$Confirm = GUICtrlCreateCheckbox("I confirm all details are correct, and I wish to proceed", 48, 456, 329, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX, $BS_CENTER))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmDesc = GUICtrlCreateEdit("", 32, 408, 361, 41, 0, 0)
GUICtrlSetData(-1, StringFormat("Please confirm that all entered information is correct, and the you wish to \r\nproceed with the creation of the " & Chr(39) & "Application Toolkit Wrapper" & Chr(39) & "."))
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ProceedBtn = GUICtrlCreateButton("Proceed", 128, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
$CancelBtn = GUICtrlCreateButton("Cancel", 240, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$CapitaLogo = GUICtrlCreatePic("Logo.jpg", 24, 8, 159, 33)
$PackagingWrapperLabel = GUICtrlCreateLabel("Packaging Wrapper", 224, 8, 187, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$CreatedByLabel = GUICtrlCreateLabel("...", 16, 528, 405, 15, $SS_CENTER)
GUICtrlSetFont(-1, 7, 400, 0, "MS Serif")
$VerLabel = GUICtrlCreateLabel("Ver. 1.0 ALPHA", 328, 40, 79, 17)
$Step1Label = GUICtrlCreateLabel("Please Enter The Following Information", 24, 80, 274, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$Graphic3 = GUICtrlCreateGraphic(16, 72, 404, 452, BitOR($GUI_SS_DEFAULT_GRAPHIC, $SS_SIMPLE))
GUICtrlSetColor(-1, 0xE3E3E3)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameDesc = GUICtrlCreateEdit("", 24, 128, 393, 33, 0, 0)
GUICtrlSetData(-1, StringFormat("Must be in the following format: Manufacturer_AppName_AppVersion_Rev\r\nEG: Corel_WinZip_21.0_01"))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ADGroupNameLabel = GUICtrlCreateLabel("AD Group Name", 24, 200, 95, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameLabel = GUICtrlCreateLabel("Application Name", 24, 112, 103, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeLabel = GUICtrlCreateLabel("Application Type", 24, 256, 99, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUISetState(@SW_SHOW)
#EndRegion ### END GUI section ###

;GLOBAL VARIABLES
Global $ApplicationName, $adstring1
Global $ADGroupName = $adstring1
Global $envSystemDrive = EnvGet("systemdrive")
Global $PackagingDirectory = "Packaging\???_Apps"
Global $FullDir = $envSystemDrive & "\" & $PackagingDirectory & "\" & $ApplicationName
Global $currentDate = @MDAY &"-"& @MON &"-"& @YEAR
Global $currentTime = @HOUR &":"& @MIN &":"& @SEC


; Register the WM_COMMAND to intercept when the value in the first input's value is changed.
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')


While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $CancelBtn
            Exit

        Case $ProceedBtn
            ;Check Application Name Validity
            $ApplicationNameInputValid = StringSplit(GUICtrlRead($ApplicationNameInput), "_")
            If $ApplicationNameInputValid[0]<> 4 Then
            ConsoleWrite("Application Name - NOT Valid" & @CRLF)
            $ApplicationNameInputValidYes = 0
            MsgBox(0,"Are The Details Correct?", "Application Name NOT Valid.")
            GUICtrlSetState($ApplicationNameInput,$GUI_FOCUS)
            Elseif $ApplicationNameInputValid[0]= 4 Then
            ConsoleWrite("Application Name - Valid" & @CRLF)
            $ApplicationNameInputValidYes = 1
            EndIf

            ;Is Confirm Checkbox 'Checked'
            if GUICtrlRead($Confirm) = $GUI_CHECKED Then
                ConsoleWrite("$Confirm - ticked" & @CRLF)
                $ConfirmYes = 1
            Else
                $ConfirmYes = 0
                ConsoleWrite("$Confirm - NOT ticked" & @CRLF)
                MsgBox(0,"Are The Details Correct?", "Please complete confirmation.")
            EndIf

            ;Is $CatalogueAppChk 'Checked'
            if GUICtrlRead($CatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$CatalogueAppChk - ticked" & @CRLF)
                $CatalogueAppChkYes = 1
            Else
                ConsoleWrite("$CatalogueAppChk - NOT ticked" & @CRLF)
                $CatalogueAppChkYes = 0
            EndIf

            ;Is $NonCatalogueAppChk 'Checked'
            if GUICtrlRead($NonCatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$NonCatalogueAppChk -  ticked" & @CRLF)
                $NonCatalogueAppChkYes = 1
            Else
                ConsoleWrite("$NonCatalogueAppChk - NOT ticked" & @CRLF)
                $NonCatalogueAppChkYes = 0
            EndIf

            ;Is $OtherAppChk 'Checked'
            if GUICtrlRead($OtherAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$OtherAppChk - ticked" & @CRLF)
                $OtherAppChkYes = 1
            Else
                ConsoleWrite("$OtherAppChk - NOT ticked" & @CRLF)
                $OtherAppChkYes = 0
            EndIf






 ConsoleWrite(@CRLF & "##### COMPLETED #####" & @CRLF)
    EndSwitch

WEnd

;Check for 'Application Name' update
Func _GetAppName()
    $adString = StringReplace(GUICtrlRead($ApplicationNameInput), "_", " ",2)
    $adstrings = StringSplit($adString, "_")
    Global $adString1 = $adstrings[1]
    Global $ApplicationName = GUICtrlRead($ApplicationNameInput)
        GUICtrlSetData($ADGroupNameInput, $adstring1)
EndFunc


;WM_COMMAND Function used for Auto Input of fields
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam

    Local $iHiWord = _WinAPI_HiWord($wParam) ; Control identification code.
    Local $iLoWord = _WinAPI_LoWord($wParam) ; Control identifier.
    Switch $iHiWord
        Case $EN_CHANGE ; When a change event is intercepted.
            Switch $iLoWord ; Retrieve the controlid.
                Case _GetAppName() ; If it matches the first input then call the custom function _GetInput.
                    ConsoleWrite("Debug: value was changed." & @CRLF)
                    _GetAppName()
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

I hope all this makes sense.

Thanks in advance :)

Link to comment
Share on other sites

Something like this maybe:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIShellEx.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <WinAPI.au3> ; used for Lo/Hi word

; Declare Global variables for WM_COMMAND and '_GetAppName()' function.
Global $__iComboWrite = 9999, $__iInputValue = 9999, $__iInputWrite = 9999
Global $bOtherInternalGroup = False

#Region ### START GUI section ###
$Form1_1 = GUICreate("Packaging Wrapper", 435, 545, -1, -1)
GUISetIcon("C.ico", -1)
GUISetBkColor(0xFFFFFF)
Global $ApplicationNameInput = GUICtrlCreateInput("", 24, 168, 385, 21)
GUICtrlSetTip(-1, "EG: Corel_WinZip_21.0_0.1")
$ADGroupNameInput = GUICtrlCreateInput("", 24, 224, 385, 21)
GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
$AllowEditChk = GUICtrlCreateCheckbox("Allow Edit", 344, 200, 65, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_RIGHT))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeGroup = GUICtrlCreateGroup("", 24, 272, 185, 113)
$CatalogueAppChk = GUICtrlCreateRadio("Catalogue Application", 32, 288, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$NonCatalogueAppChk = GUICtrlCreateRadio("Non-Catalogue Application", 32, 320, 161, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$OtherAppChk = GUICtrlCreateRadio("Other / Internal Use", 32, 352, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
; $OtherInternalGroup = GUICtrlCreateGroup("", 216, 272, 193, 113)
$OSCoreApplicationChk = GUICtrlCreateRadio("OS Core Application", 224, 288, 129, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$InternalOnlyChk = GUICtrlCreateRadio("Internal ONLY Application", 224, 320, 161, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$OtherInternalLabel = GUICtrlCreateLabel("Other / Internal Use", 216, 256, 118, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)

$ConfirmGroup = GUICtrlCreateGroup("", 24, 392, 385, 89)
$Confirm = GUICtrlCreateCheckbox("I confirm all details are correct, and I wish to proceed", 48, 456, 329, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX, $BS_CENTER))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmDesc = GUICtrlCreateEdit("", 32, 408, 361, 41, 0, 0)
GUICtrlSetData(-1, StringFormat("Please confirm that all entered information is correct, and the you wish to \r\nproceed with the creation of the " & Chr(39) & "Application Toolkit Wrapper" & Chr(39) & "."))
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ProceedBtn = GUICtrlCreateButton("Proceed", 128, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
$CancelBtn = GUICtrlCreateButton("Cancel", 240, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$CapitaLogo = GUICtrlCreatePic("Logo.jpg", 24, 8, 159, 33)
$PackagingWrapperLabel = GUICtrlCreateLabel("Packaging Wrapper", 224, 8, 187, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$CreatedByLabel = GUICtrlCreateLabel("...", 16, 528, 405, 15, $SS_CENTER)
GUICtrlSetFont(-1, 7, 400, 0, "MS Serif")
$VerLabel = GUICtrlCreateLabel("Ver. 1.0 ALPHA", 328, 40, 79, 17)
$Step1Label = GUICtrlCreateLabel("Please Enter The Following Information", 24, 80, 274, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$Graphic3 = GUICtrlCreateGraphic(16, 72, 404, 452, BitOR($GUI_SS_DEFAULT_GRAPHIC, $SS_SIMPLE))
GUICtrlSetColor(-1, 0xE3E3E3)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameDesc = GUICtrlCreateEdit("", 24, 128, 393, 33, 0, 0)
GUICtrlSetData(-1, StringFormat("Must be in the following format: Manufacturer_AppName_AppVersion_Rev\r\nEG: Corel_WinZip_21.0_01"))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ADGroupNameLabel = GUICtrlCreateLabel("AD Group Name", 24, 200, 95, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameLabel = GUICtrlCreateLabel("Application Name", 24, 112, 103, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeLabel = GUICtrlCreateLabel("Application Type", 24, 256, 99, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUISetState(@SW_SHOW)
#EndRegion ### END GUI section ###

;GLOBAL VARIABLES
Global $ApplicationName, $adstring1
Global $ADGroupName = $adstring1
Global $envSystemDrive = EnvGet("systemdrive")
Global $PackagingDirectory = "Packaging\???_Apps"
Global $FullDir = $envSystemDrive & "\" & $PackagingDirectory & "\" & $ApplicationName
Global $currentDate = @MDAY &"-"& @MON &"-"& @YEAR
Global $currentTime = @HOUR &":"& @MIN &":"& @SEC

AdlibRegister("_GetAppName")

While 1
    $nMsg = GUIGetMsg()
    If BitAND(GUICtrlRead($OtherAppChk), $GUI_CHECKED) = $GUI_CHECKED And $bOtherInternalGroup = False Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_SHOW)
        GUICtrlSetState($InternalOnlyChk, $GUI_SHOW)
        GUICtrlSetState($OtherInternalLabel, $GUI_SHOW)
        $bOtherInternalGroup = True
    ElseIf BitAND(GUICtrlRead($OtherAppChk), $GUI_UNCHECKED) = $GUI_UNCHECKED And $bOtherInternalGroup = True Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_HIDE)
        GUICtrlSetState($InternalOnlyChk, $GUI_HIDE)
        GUICtrlSetState($OtherInternalLabel, $GUI_HIDE)
        $bOtherInternalGroup = False
    EndIf
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $CancelBtn
            Exit
        Case $AllowEditChk
            If GUICtrlRead($AllowEditChk) = $GUI_CHECKED Then
                GUICtrlSetState($ADGroupNameInput, $GUI_ENABLE)
                AdlibUnRegister("_GetAppName")
            Else
                GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
                AdlibRegister("_GetAppName")
            EndIf
        Case $ProceedBtn
            ;Check Application Name Validity
            $ApplicationNameInputValid = StringSplit(GUICtrlRead($ApplicationNameInput), "_")
            If $ApplicationNameInputValid[0]<> 4 Then
            ConsoleWrite("Application Name - NOT Valid" & @CRLF)
            $ApplicationNameInputValidYes = 0
            MsgBox(0,"Are The Details Correct?", "Application Name NOT Valid.")
            GUICtrlSetState($ApplicationNameInput,$GUI_FOCUS)
            Elseif $ApplicationNameInputValid[0]= 4 Then
            ConsoleWrite("Application Name - Valid" & @CRLF)
            $ApplicationNameInputValidYes = 1
            EndIf

            ;Is Confirm Checkbox 'Checked'
            if GUICtrlRead($Confirm) = $GUI_CHECKED Then
                ConsoleWrite("$Confirm - ticked" & @CRLF)
                $ConfirmYes = 1
            Else
                $ConfirmYes = 0
                ConsoleWrite("$Confirm - NOT ticked" & @CRLF)
                MsgBox(0,"Are The Details Correct?", "Please complete confirmation.")
            EndIf

            ;Is $CatalogueAppChk 'Checked'
            if GUICtrlRead($CatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$CatalogueAppChk - ticked" & @CRLF)
                $CatalogueAppChkYes = 1
            Else
                ConsoleWrite("$CatalogueAppChk - NOT ticked" & @CRLF)
                $CatalogueAppChkYes = 0
            EndIf

            ;Is $NonCatalogueAppChk 'Checked'
            if GUICtrlRead($NonCatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$NonCatalogueAppChk -  ticked" & @CRLF)
                $NonCatalogueAppChkYes = 1
            Else
                ConsoleWrite("$NonCatalogueAppChk - NOT ticked" & @CRLF)
                $NonCatalogueAppChkYes = 0
            EndIf

            ;Is $OtherAppChk 'Checked'
            if GUICtrlRead($OtherAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$OtherAppChk - ticked" & @CRLF)
                $OtherAppChkYes = 1
            Else
                ConsoleWrite("$OtherAppChk - NOT ticked" & @CRLF)
                $OtherAppChkYes = 0
            EndIf

 ConsoleWrite(@CRLF & "##### COMPLETED #####" & @CRLF)
    EndSwitch

WEnd

;Check for 'Application Name' update
Func _GetAppName()
    $adString = StringReplace(GUICtrlRead($ApplicationNameInput), "_", " ",2)
    $adstrings = StringSplit($adString, "_")
    Global $adString1 = $adstrings[1]
    Global $ApplicationName = GUICtrlRead($ApplicationNameInput)
        GUICtrlSetData($ADGroupNameInput, $adstring1)
EndFunc

 

Edited by Subz
Link to comment
Share on other sites

Hey Subz,

Yes like that!! Although this still doesn't allow the user to edit the contents of the input box... I haven't a clue how to make the radiobutton show the other radio buttons either :( 

 

Thanks

Link to comment
Share on other sites

The wmcommand basically allows for the update of the AD Group box when entering the Application name. if you enter a application name it also populates the AD Group box stripping out the ' _ ' (Underscore) character.

 

Unfortunately this new code has stopped that functionality, it no longer auto populates the AD Group input box :(

Edited by amphoric
Update of information
Link to comment
Share on other sites

Have updated the post above, the WMCommand was being used incorrectly which is why I asked, I've now removed it and added AdLibRegister which uses the same _GetAppName function, when checking/unchecking "Allow Edit" this will enable/disable the _GetAppName function.  Hope that makes sense.

Link to comment
Share on other sites

OMG SUBZ! You are my HERO!!!!!!

Thank you so much, you don't know how long I've been looking at trying to do this!

Can you please explain the changes and why they were required? I would like to learn how/where I went wrong

 

Thanks

Link to comment
Share on other sites

Have added a few comments to the code, changed function global declarations to local, shouldn't declare global variables within functions.  Anyway I hope it makes sense, sorry documentation isn't my forte :)

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIShellEx.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <WinAPI.au3> ; used for Lo/Hi word

; Declare Global variables for WM_COMMAND and '_GetAppName()' function.
Global $__iComboWrite = 9999, $__iInputValue = 9999, $__iInputWrite = 9999
;~ Boolean to determine if changes to $bOtherInternalGroup has occurred
Global $bOtherInternalGroup = False

#Region ### START GUI section ###
$Form1_1 = GUICreate("Packaging Wrapper", 435, 545, -1, -1)
GUISetIcon("C.ico", -1)
GUISetBkColor(0xFFFFFF)
Global $ApplicationNameInput = GUICtrlCreateInput("", 24, 168, 385, 21)
GUICtrlSetTip(-1, "EG: Corel_WinZip_21.0_0.1")
$ADGroupNameInput = GUICtrlCreateInput("", 24, 224, 385, 21)
GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
$AllowEditChk = GUICtrlCreateCheckbox("Allow Edit", 344, 200, 65, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_RIGHT))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeGroup = GUICtrlCreateGroup("", 24, 272, 185, 113)
$CatalogueAppChk = GUICtrlCreateRadio("Catalogue Application", 32, 288, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$NonCatalogueAppChk = GUICtrlCreateRadio("Non-Catalogue Application", 32, 320, 161, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$OtherAppChk = GUICtrlCreateRadio("Other / Internal Use", 32, 352, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
; $OtherInternalGroup = GUICtrlCreateGroup("", 216, 272, 193, 113)
$OSCoreApplicationChk = GUICtrlCreateRadio("OS Core Application", 224, 288, 129, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$InternalOnlyChk = GUICtrlCreateRadio("Internal ONLY Application", 224, 320, 161, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$OtherInternalLabel = GUICtrlCreateLabel("Other / Internal Use", 216, 256, 118, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)

$ConfirmGroup = GUICtrlCreateGroup("", 24, 392, 385, 89)
$Confirm = GUICtrlCreateCheckbox("I confirm all details are correct, and I wish to proceed", 48, 456, 329, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX, $BS_CENTER))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmDesc = GUICtrlCreateEdit("", 32, 408, 361, 41, 0, 0)
GUICtrlSetData(-1, StringFormat("Please confirm that all entered information is correct, and the you wish to \r\nproceed with the creation of the " & Chr(39) & "Application Toolkit Wrapper" & Chr(39) & "."))
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ProceedBtn = GUICtrlCreateButton("Proceed", 128, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
$CancelBtn = GUICtrlCreateButton("Cancel", 240, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$CapitaLogo = GUICtrlCreatePic("Logo.jpg", 24, 8, 159, 33)
$PackagingWrapperLabel = GUICtrlCreateLabel("Packaging Wrapper", 224, 8, 187, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$CreatedByLabel = GUICtrlCreateLabel("...", 16, 528, 405, 15, $SS_CENTER)
GUICtrlSetFont(-1, 7, 400, 0, "MS Serif")
$VerLabel = GUICtrlCreateLabel("Ver. 1.0 ALPHA", 328, 40, 79, 17)
$Step1Label = GUICtrlCreateLabel("Please Enter The Following Information", 24, 80, 274, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$Graphic3 = GUICtrlCreateGraphic(16, 72, 404, 452, BitOR($GUI_SS_DEFAULT_GRAPHIC, $SS_SIMPLE))
GUICtrlSetColor(-1, 0xE3E3E3)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameDesc = GUICtrlCreateEdit("", 24, 128, 393, 33, 0, 0)
GUICtrlSetData(-1, StringFormat("Must be in the following format: Manufacturer_AppName_AppVersion_Rev\r\nEG: Corel_WinZip_21.0_01"))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ADGroupNameLabel = GUICtrlCreateLabel("AD Group Name", 24, 200, 95, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameLabel = GUICtrlCreateLabel("Application Name", 24, 112, 103, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeLabel = GUICtrlCreateLabel("Application Type", 24, 256, 99, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUISetState(@SW_SHOW)
#EndRegion ### END GUI section ###

;GLOBAL VARIABLES
Global $ApplicationName, $adstring1
Global $ADGroupName = $adstring1
Global $envSystemDrive = EnvGet("systemdrive")
Global $PackagingDirectory = "Packaging\???_Apps"
Global $FullDir = $envSystemDrive & "\" & $PackagingDirectory & "\" & $ApplicationName
Global $currentDate = @MDAY &"-"& @MON &"-"& @YEAR
Global $currentTime = @HOUR &":"& @MIN &":"& @SEC

;~ Registers _GetAppName as an Adlib function, checks every 250ms (default)
AdlibRegister("_GetAppName")

While 1
    $nMsg = GUIGetMsg()
    ;~ Check if radio button ($OtherAppChk) is selected and hide/show hidden radio buttons
    ;~ Uses $bOtherInternalGroup (Boolean) to stop flickering
    If BitAND(GUICtrlRead($OtherAppChk), $GUI_CHECKED) = $GUI_CHECKED And $bOtherInternalGroup = False Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_SHOW)
        GUICtrlSetState($InternalOnlyChk, $GUI_SHOW)
        GUICtrlSetState($OtherInternalLabel, $GUI_SHOW)
        $bOtherInternalGroup = True
    ElseIf BitAND(GUICtrlRead($OtherAppChk), $GUI_UNCHECKED) = $GUI_UNCHECKED And $bOtherInternalGroup = True Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_HIDE)
        GUICtrlSetState($InternalOnlyChk, $GUI_HIDE)
        GUICtrlSetState($OtherInternalLabel, $GUI_HIDE)
        $bOtherInternalGroup = False
    EndIf
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $CancelBtn
            Exit
        Case $AllowEditChk
            ;~ Check if $AllowEditChk Checkbox is checked or not:
            ;~ Enables/Disabled $ADGroupNameInput
            ;~ Register/Unregister _GetAppName function
            If GUICtrlRead($AllowEditChk) = $GUI_CHECKED Then
                GUICtrlSetState($ADGroupNameInput, $GUI_ENABLE)
                AdlibUnRegister("_GetAppName")
            Else
                GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
                AdlibRegister("_GetAppName")
            EndIf
        Case $ProceedBtn
            ;Check Application Name Validity
            $ApplicationNameInputValid = StringSplit(GUICtrlRead($ApplicationNameInput), "_")
            If $ApplicationNameInputValid[0]<> 4 Then
            ConsoleWrite("Application Name - NOT Valid" & @CRLF)
            $ApplicationNameInputValidYes = 0
            MsgBox(0,"Are The Details Correct?", "Application Name NOT Valid.")
            GUICtrlSetState($ApplicationNameInput,$GUI_FOCUS)
            Elseif $ApplicationNameInputValid[0]= 4 Then
            ConsoleWrite("Application Name - Valid" & @CRLF)
            $ApplicationNameInputValidYes = 1
            EndIf

            ;Is Confirm Checkbox 'Checked'
            if GUICtrlRead($Confirm) = $GUI_CHECKED Then
                ConsoleWrite("$Confirm - ticked" & @CRLF)
                $ConfirmYes = 1
            Else
                $ConfirmYes = 0
                ConsoleWrite("$Confirm - NOT ticked" & @CRLF)
                MsgBox(0,"Are The Details Correct?", "Please complete confirmation.")
            EndIf

            ;Is $CatalogueAppChk 'Checked'
            if GUICtrlRead($CatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$CatalogueAppChk - ticked" & @CRLF)
                $CatalogueAppChkYes = 1
            Else
                ConsoleWrite("$CatalogueAppChk - NOT ticked" & @CRLF)
                $CatalogueAppChkYes = 0
            EndIf

            ;Is $NonCatalogueAppChk 'Checked'
            if GUICtrlRead($NonCatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$NonCatalogueAppChk -  ticked" & @CRLF)
                $NonCatalogueAppChkYes = 1
            Else
                ConsoleWrite("$NonCatalogueAppChk - NOT ticked" & @CRLF)
                $NonCatalogueAppChkYes = 0
            EndIf

            ;Is $OtherAppChk 'Checked'
            if GUICtrlRead($OtherAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$OtherAppChk - ticked" & @CRLF)
                $OtherAppChkYes = 1
            Else
                ConsoleWrite("$OtherAppChk - NOT ticked" & @CRLF)
                $OtherAppChkYes = 0
            EndIf

 ConsoleWrite(@CRLF & "##### COMPLETED #####" & @CRLF)
    EndSwitch

WEnd

;Check for 'Application Name' update
Func _GetAppName()
    Local  $adString = StringReplace(GUICtrlRead($ApplicationNameInput), "_", " ",2)
    Local $adstrings = StringSplit($adString, "_")
    Local $adString1 = $adstrings[1]
    Local $ApplicationName = GUICtrlRead($ApplicationNameInput)
        GUICtrlSetData($ADGroupNameInput, $adstring1)
EndFunc

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...