Zero0 Posted May 15, 2020 Share 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 Link to comment Share on other sites More sharing options...
faustf Posted May 16, 2020 Share 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 Link to comment Share on other sites More sharing options...
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