Каким образом можно вывести в одно поле Edit (можно применить другой элемент) результаты разных функций?
Сейчас у меня результаты выводятся в разные поля.
Сейчас у меня результаты выводятся в разные поля.
Код:
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <UpdownConstants.au3>
Global $iDn1, $iDk1
Global $iDn2, $iDk2, $nOutput2, $nCheckbox2, $nInputn2, $nInputk2, $nUDn2, $nUDk2
Global $iDn3, $iDk3, $nOutput3, $nCheckbox3, $nInputn3, $nInputk3, $nUDn3, $nUDk3
$hGUI = GUICreate('Кабельные вводы', 980, 250, -1, -1, -1, $WS_CLIPCHILDREN)
$nInputn1 = GUICtrlCreateInput('23', 10, 10, 50, 20)
$nUDn1 = GUICtrlCreateUpdown(-1, $UDS_ALIGNLEFT)
GUICtrlSetLimit(-1, 99, 1)
$nInputk1 = GUICtrlCreateInput('33', 75, 10, 50, 20)
$nUDk1 = GUICtrlCreateUpdown(-1, $UDS_ALIGNRIGHT)
GUICtrlSetLimit(-1, 99, 1)
$nCheckbox1 = GUICtrlCreateCheckbox('', 130, 10, 20, 20)
$nOutput1 = GUICtrlCreateEdit('', 160, 10, 400, 50)
GUISetState()
Dim $TCM = [["ТСМ 20/0+5-12", 5, 12], _
["ТСМ 30/0+13-23", 13, 23], _
["ТСМ 40/0+23-33", 23, 33], _
["ТСМ 60/0+34-51", 34, 51], _
["ТСМ 90/0+52-78", 52, 78], _
["ТСМ 120/0+79-99", 79, 99]]
While 1
$nDn1 = GUICtrlRead($nInputn1)
$nDk1 = GUICtrlRead($nInputk1)
If $nDn1 <> $iDn1 Or $nDk1 <> $iDk1 Then
CabTCM_Index($nDn1, $nDk1, $nOutput1)
$iDn1 = $nDn1
$iDk1 = $nDk1
EndIf
$nDn2 = GUICtrlRead($nInputn2)
$nDk2 = GUICtrlRead($nInputk2)
If $nDn2 <> $iDn2 Or $nDk2 <> $iDk2 Then
CabTCM_Index($nDn2, $nDk2, $nOutput2)
$iDn2 = $nDn2
$iDk2 = $nDk2
EndIf
$nDn3 = GUICtrlRead($nInputn3)
$nDk3 = GUICtrlRead($nInputk3)
If $nDn3 <> $iDn3 Or $nDk3 <> $iDk3 Then
CabTCM_Index($nDn3, $nDk3, $nOutput3)
$iDn3 = $nDn3
$iDk3 = $nDk3
EndIf
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $nCheckbox1
If BitAND(GUICtrlRead($nCheckbox1), $GUI_CHECKED) Then
$nInputn2 = GUICtrlCreateInput('13', 10, 40, 50, 20)
$nUDn2 = GUICtrlCreateUpdown(-1, $UDS_ALIGNLEFT)
GUICtrlSetLimit(-1, 99, 1)
$nInputk2 = GUICtrlCreateInput('23', 75, 40, 50, 20)
$nUDk2 = GUICtrlCreateUpdown(-1, $UDS_ALIGNRIGHT)
GUICtrlSetLimit(-1, 99, 1)
$nCheckbox2 = GUICtrlCreateCheckbox('', 130, 40, 20, 20)
$nOutput2 = GUICtrlCreateEdit('', 160, 80, 400, 50)
Else
GUICtrlDelete($nInputn2)
GUICtrlDelete($nInputk2)
GUICtrlDelete($nCheckbox2)
GUICtrlDelete($nUDn2)
GUICtrlDelete($nUDk2)
GUICtrlDelete($nOutput2)
EndIf
Case $nCheckbox2
If BitAND(GUICtrlRead($nCheckbox2), $GUI_CHECKED) Then
$nInputn3 = GUICtrlCreateInput('', 10, 70, 50, 20)
$nUDn3 = GUICtrlCreateUpdown(-1, $UDS_ALIGNLEFT)
GUICtrlSetLimit(-1, 99, 1)
$nInputk3 = GUICtrlCreateInput('', 75, 70, 50, 20)
$nUDk3 = GUICtrlCreateUpdown(-1, $UDS_ALIGNRIGHT)
GUICtrlSetLimit(-1, 99, 1)
$nCheckbox3 = GUICtrlCreateCheckbox('', 130, 70, 20, 20)
$nOutput3 = GUICtrlCreateEdit('', 160, 150, 400, 50)
GUICtrlSetState ($nCheckbox1, $GUI_DISABLE)
Else
GUICtrlDelete($nInputn3)
GUICtrlDelete($nInputk3)
GUICtrlDelete($nCheckbox3)
GUICtrlDelete($nUDn3)
GUICtrlDelete($nUDk3)
GUICtrlDelete($nOutput3)
GUICtrlSetState ($nCheckbox1, $GUI_ENABLE)
EndIf
EndSwitch
WEnd
Func CabTCM_Index($pDn, $pDk, $pOutput)
If Number($pDn) > Number($pDk) Or $pDn < $TCM[0][1] Or $pDk > $TCM[UBound($TCM) - 1][2] Then Return GUICtrlSetData($pOutput, "Некорректный диапазон")
GUICtrlSetData($pOutput, '∅' & $pDn & '–' & $pDk & ':' & @TAB)
For $i = 0 To UBound($TCM) - 1
If $pDk <= $TCM[$i][2] Then
For $i = $i To 0 Step -1
If $pDn >= $TCM[$i][1] Then
GUICtrlSetData($pOutput, $TCM[$i][0], 1)
ExitLoop 2
Else
GUICtrlSetData($pOutput, $TCM[$i][0] & ', ', 1)
EndIf
Next
Else
EndIf
Next
EndFunc