Jump to content

Gui elements control StringUpper and StringLower issue


Recommended Posts

I can't fully do the Combo1 and Combo2 missions failed :(

I would appreciate if you help for the example below.

#include <ComboConstants.au3>
#include <GuiComboBox.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StringConstants.au3>

$FixedVariable1 = "Variable1"
$FixedVariable2 = "Variable2"

$Form1 = GUICreate("Form1", 426, 136)

$InputGroup1A = GUICtrlCreateInput("", 10, 53, 89, 21)
$InputOutputGroup1B = GUICtrlCreateInput("", 114, 53, 153, 21, $es_readonly)
GUICtrlSetData($InputOutputGroup1B, $FixedVariable1)
$InputGroup1C = GUICtrlCreateInput("", 282, 53, 121, 21)
;---------------------------------------------------------
$InputGroup2A = GUICtrlCreateInput("", 9, 88, 89, 21)
$InputOutputGroup2B = GUICtrlCreateInput("", 114, 88, 153, 21, $es_readonly)
GUICtrlSetData($InputOutputGroup2B, $FixedVariable2)
$InputGroup2C = GUICtrlCreateInput("", 284, 88, 121, 21)

$Combo1 = GUICtrlCreateCombo("Delimiters?", 114, 19, 65, 25)
GUICtrlSetData($Combo1, '-4|-5')
GUICtrlSetState($Combo1, $GUI_FOCUS)

$Combo2 = GUICtrlCreateCombo("String format?", 200, 18, 65, 25)
GUICtrlSetData($Combo2, 'StringUpper|StringLower')

$sCurrCombo1 = ""
$sCurrCombo2 = ""

GUISetState()
$msg = 0
While $msg <> $gui_event_close

    $msg = GUIGetMsg()
    $Combo1Read = GUICtrlRead($Combo1)
    $Combo2Read = GUICtrlRead($Combo2)
    $InputOutputGroup1BRead = GUICtrlRead($InputOutputGroup1B)
    $InputOutputGroup2BRead = GUICtrlRead($InputOutputGroup2B)

    Select
        Case $Combo1
            If $Combo1Read <> $sCurrCombo1 And _GUICtrlComboBox_GetDroppedState($Combo1) = False Then
                GUICtrlSetData($InputOutputGroup1B, _delimiters($InputOutputGroup1BRead))
                GUICtrlSetData($InputOutputGroup2B, _delimiters($InputOutputGroup2BRead))
                $sCurrCombo1 = $Combo1Read
            EndIf

        Case $Combo2
            If StringInStr($Combo2Read, "StringUpper") Then
                If $Combo2Read <> $sCurrCombo2 And _GUICtrlComboBox_GetDroppedState($Combo2) = False Then
                    GUICtrlSetData($InputOutputGroup1B, StringUpper(_delimiters($InputOutputGroup1BRead)))
                    GUICtrlSetData($InputOutputGroup2B, StringUpper(_delimiters($InputOutputGroup2BRead)))
                    $sCurrCombo2 = $Combo2Read
                EndIf
            Else
                GUICtrlSetData($InputOutputGroup1B, StringLower(_delimiters($InputOutputGroup1BRead)))
                GUICtrlSetData($InputOutputGroup2B, StringLower(_delimiters($InputOutputGroup2BRead)))
                $sCurrCombo2 = $Combo2Read
            EndIf
    EndSelect
WEnd

Func _delimiters($InputOutputGroup)
    If StringInStr($Combo1Read, "-4") Then
        $delimiters = StringRegExpReplace($InputOutputGroup, '\w{4}\K(?!$)', '-')
    Else
        $delimiters = StringRegExpReplace($InputOutputGroup, '\w{5}\K(?!$)', '-')
    EndIf
    Return $delimiters
EndFunc

 

Link to comment
Share on other sites

if  you put out of select   the  code 

If $Combo1Read <> $sCurrCombo1 And _GUICtrlComboBox_GetDroppedState($Combo1) = False Then
                GUICtrlSetData($InputOutputGroup1B, _delimiters($InputOutputGroup1BRead))
                GUICtrlSetData($InputOutputGroup2B, _delimiters($InputOutputGroup2BRead))
                $sCurrCombo1 = $Combo1Read
            EndIf

like this

While $msg <> $gui_event_close

    $msg = GUIGetMsg()
    $Combo1Read = GUICtrlRead($Combo1)
    $Combo2Read = GUICtrlRead($Combo2)
    $InputOutputGroup1BRead = GUICtrlRead($InputOutputGroup1B)
    $InputOutputGroup2BRead = GUICtrlRead($InputOutputGroup2B)

    If $Combo1Read <> $sCurrCombo1 And _GUICtrlComboBox_GetDroppedState($Combo1) = False Then
                GUICtrlSetData($InputOutputGroup1B, _delimiters($InputOutputGroup1BRead))
                GUICtrlSetData($InputOutputGroup2B, _delimiters($InputOutputGroup2BRead))
                $sCurrCombo1 = $Combo1Read
            EndIf


    Select
        Case $Combo1

the code work

i suppose the problem is select , but i usually use  another mode for crete a script , i dont hve much experience about your  mode try to start at this

#include <ComboConstants.au3>
#include <GuiComboBox.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StringConstants.au3>


Opt("GuiOnEventMode", 1)
Opt("GUICloseOnESC", 0)


Global $FixedVariable1 = "Variable1", $InputGroup2A, $InputGroup1A, $InputOutputGroup1B, $InputGroup1C, $InputOutputGroup2B, $InputGroup2C
Global $FixedVariable2 = "Variable2", $Combo1, $Combo2, $Form1, $Combo1Read, $sCurrCombo1, $sCurrCombo2


_GUI()
Func _GUI()



    $Form1 = GUICreate("Form1", 426, 136)
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND_combo")
    $InputGroup1A = GUICtrlCreateInput("", 10, 53, 89, 21)
    $InputOutputGroup1B = GUICtrlCreateInput("", 114, 53, 153, 21, $es_readonly)
    GUICtrlSetData($InputOutputGroup1B, $FixedVariable1)
    $InputGroup1C = GUICtrlCreateInput("", 282, 53, 121, 21)
    ;---------------------------------------------------------
    $InputGroup2A = GUICtrlCreateInput("", 9, 88, 89, 21)
    $InputOutputGroup2B = GUICtrlCreateInput("", 114, 88, 153, 21, $es_readonly)
    GUICtrlSetData($InputOutputGroup2B, $FixedVariable2)
    $InputGroup2C = GUICtrlCreateInput("", 284, 88, 121, 21)

    $Combo1 = GUICtrlCreateCombo("Delimiters?", 114, 19, 65, 25)
    GUICtrlSetData($Combo1, '-4|-5')
    GUICtrlSetState($Combo1, $GUI_FOCUS)

    $Combo2 = GUICtrlCreateCombo("String format?", 200, 18, 65, 25)
    GUICtrlSetData($Combo2, 'StringUpper|StringLower')


    GUISetState()

    GUISetOnEvent($GUI_EVENT_CLOSE, _Exit)



EndFunc   ;==>_GUI

Func WM_COMMAND_combo($hWndGUI, $MsgID, $WParam, $LParam) ; per dare al combo 8 a run time
    If Not BitAND(WinGetState($hWndGUI), 2) Then Return $GUI_RUNDEFMSG

    Local $Form1 = BitAND($WParam, 0xFFFF) ; Low Word
    Local $iCode = BitShift($WParam, 16) ; Hi Word

    Switch $Form1
        Case $Combo1
            Switch $iCode
                Case 8
                    ;MsgBox(0, '6497', 'eccolo')



            EndSwitch


        Case $Combo2
            Switch $iCode
                Case 1
                    ;Local $sComboData = GUICtrlRead($iIDFrom)
                    ;Local $sComboIndex = ControlCommand($hWndGUI, "", $iIDFrom, "FindString", $sComboData)
                    ;  PrintF("ComboBox selected: [Index = " & $sComboIndex & "], Text = " &  $sComboData)
                    MsgBox(0, '', 'qua 1')
                Case 3
                    ; PrintF("ComboBox has focus")
                
                    MsgBox(0, '', 'qua 2')
                Case 4
                    ;PrintF("ComboBox lost focus")
                    MsgBox(0, '', 'qua 3')
                Case 5, 6
                    ;PrintF("ComboBox changed/updated: " & GUICtrlRead($iIDFrom))
                    MsgBox(0, '6', GUICtrlRead($Form1))
                Case 7 ; se clicco sulla freccia del combobox
                    ;PrintF("ComboBox is Opened")
                    MsgBox(0, 'qua 7', GUICtrlRead($Form1))
                Case 8
                    ;PrintF("ComboBox is Closed")
                    MsgBox(0, 'qua 8', GUICtrlRead($Form1))


                Case Else
                    ;   PrintF($iCode)
                    MsgBox(0, '', 'qua 7')
            EndSwitch





    EndSwitch

    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND_combo


While 1
    Sleep(100)
WEnd
Func _Exit()
    Exit
EndFunc   ;==>_Exit

Func _delimiters($InputOutputGroup)
    If StringInStr($Combo1Read, "-4") Then
        $delimiters = StringRegExpReplace($InputOutputGroup, '\w{4}\K(?!$)', '-')
    Else
        $delimiters = StringRegExpReplace($InputOutputGroup, '\w{5}\K(?!$)', '-')
    EndIf
    Return $delimiters
EndFunc   ;==>_delimiters

 

 

Edited by faustf
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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...