Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Два вопроса по работе с выбором цвета (http://forum.oszone.net/showthread.php?t=276835)

eus_deus 31-01-2014 18:05 2300054

Два вопроса по работе с выбором цвета
 
Всем здравствуйте!
Имеется форма с десятью полями и кнопка вида

Код:

Case $vButton1
            $vColor1 = GUICtrlRead($vInput1)
            If $vColor1='' Then
    $nColor = _ColorChooserDialog('0x00FF40', $Form1,0,0,$CC_FLAG_DEFAULT)
        Else
  $nColor = _ColorChooserDialog('0x'&$vColor1, $Form1,0,0,$CC_FLAG_DEFAULT)
        endif
                        If $nColor = -1 Then
                GUICtrlSetData($vInput1, $vColor1)
        Else
                GUICtrlSetData($vInput1,Hex($nColor, 6))
                GUICtrlSetBkColor($vInput1,'0x' & Hex($nColor, 6))
                GUICtrlSetColor($vInput1,$fColor)
                                  GUICtrlSetState($vButton11,$gui_enable)
                GUICtrlSetState($vButton12,$gui_enable)
                GUICtrlSetState($vButton13,$gui_enable)
                GUICtrlSetState($vButton20,$gui_enable)
                GUICtrlSetImage($vButton13, $sLib, 3, 0)
                GUICtrlSetImage($vButton20, $sLib, 2, 0)
            EndIf

для сравнения еще одна

Код:

Case $vButton2
            $vColor2 = GUICtrlRead($vInput2)
            If $vColor2='' Then
    $nColor = _ColorChooserDialog('0x00FF40', $Form1,0,0,$CC_FLAG_DEFAULT)
        Else
  $nColor = _ColorChooserDialog('0x'&$vColor2, $Form1,0,0,$CC_FLAG_DEFAULT)
        endif
        If $nColor = -1 Then
                GUICtrlSetData($vInput2, $vColor2)
        Else
                GUICtrlSetData($vInput2,Hex($nColor, 6))
                    GUICtrlSetBkColor($vInput2,'0x' & Hex($nColor, 6))
                GUICtrlSetState($vButton11,$gui_enable)
                GUICtrlSetState($vButton12,$gui_enable)
                GUICtrlSetState($vButton14,$gui_enable)
                GUICtrlSetState($vButton22,$gui_enable)
                                  GUICtrlSetImage($vButton14, $sLib, 3, 0)
                GUICtrlSetImage($vButton22, $sLib, 2, 0)
            EndIf

как видно действия схожи, только меняются идентификаторы.
вопрос - как можно упростить такую задачу и уменьшить код? большинство же одинаковое. а кнопок таких 10
и еще один по этой же теме - как организовать проверку цвета и менять цвет шрифта, если заливка слишком темная? тоже для всех 10 полей
спасибо


Время: 17:59.

Время: 17:59.
© OSzone.net 2001-