Zero0 Posted May 15, 2020 Posted May 15, 2020 I can't fully do the Combo1 and Combo2 missions failed I would appreciate if you help for the example below. expandcollapse popup#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
faustf Posted May 16, 2020 Posted May 16, 2020 (edited) 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 expandcollapse popup#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 May 16, 2020 by faustf
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now