Что нового

Часть Edit жирным шрифтом

joparezzz

Новичок
Сообщения
65
Репутация
0
Как сделать часть значения Edit (названия шкафов) жирным шрифтом?
Код:
#include <AutoItConstants.au3>
#include <GUIConstants.au3>
#include <GUIComboBox.au3>
#include <GUIListBox.au3>
#include <WinAPI.au3>
#include <FontConstants.au3>
#include <ColorConstants.au3>
#include <GuiRichEdit.au3>

Global $aCombo[6] = [5], $aValues[6] = [5], $aValuesC[6] = [5], $iFocusIndex, $iEdit, $iList, $iListC
Global $aInfo[][] = [["Шкафа связи", "?x?x?", "600x600x2100", "# ", "#Комментарий 1", "#Комментарий 2"], _
        ["ШТМ", "?x?x?", "800x600x2000", "1000x600x2000"], _
        ["Шкаф ЗИП", "?x?x?", "600х450х700", "600х600х800"], _
        ["ШОС", "?x?x?", "600x600x2000", "600x600x2160"], _
        ["ШУМПС", "?x?x?", "600х250х800"]]

$hGui = GUICreate("", 330+400, 330)
$iList = GUICtrlCreateList("", 170, 10, 150, 150-78)
$iListC = GUICtrlCreateList("", 170, 90, 150, 150-78)
;$iEdit = GUICtrlCreateEdit("", 10, 170, 310+400, 150)
$iEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 170, 310+400, 150 , BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
_CreateCombo()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $aCombo[1]
            _UpdateList(1)
        Case $aCombo[2]
            _UpdateList(2)
        Case $aCombo[3]
            _UpdateList(3)
        Case $aCombo[4]
            _UpdateList(4)
        Case $aCombo[5]
            _UpdateList(5)
        Case $iList
            _UpdateEdit()
        Case $iListC
            _UpdateEdit()
    EndSwitch
WEnd

Func _CreateCombo()
    Local $iY = 10
    For $i = 1 To $aCombo[0]
        $aCombo[$i] = GUICtrlCreateCombo("", 10, $iY, 150, 20, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
        For $j = 0 To UBound($aInfo) - 1
            GUICtrlSetData($aCombo[$i], $aInfo[$j][0])
			;GUICtrlSetFont($aCombo[$i], 11, 800, 0, "Calibri")
        Next
        $iY += 30
    Next
EndFunc   ;==>_CreateCombo

Func _UpdateList($iIndex)
    Local $iSel = _GUICtrlComboBox_GetCurSel($aCombo[$iIndex])
    If $iSel >= 0 Then
        GUICtrlSetData($iList, "")
        GUICtrlSetData($iListC, "")
        For $i = 1 To UBound($aInfo, $UBOUND_COLUMNS) - 1
            If $aInfo[$iSel][$i] And StringLeft($aInfo[$iSel][$i], 1) <> '#' Then GUICtrlSetData($iList, $aInfo[$iSel][$i])
            If StringLeft($aInfo[$iSel][$i], 1) = '#' Then GUICtrlSetData($iListC, StringTrimLeft($aInfo[$iSel][$i], 1))
        Next
    EndIf
EndFunc   ;==>_UpdateList

Func _UpdateEdit()
    Local $sData
    If _GUICtrlListBox_GetCurSel($iList) >= 0 Or _GUICtrlListBox_GetCurSel($iListC) >= 0 Then
        $aValues[$iFocusIndex] = GUICtrlRead($iList)
        $aValuesC[$iFocusIndex] = GUICtrlRead($iListC)
        For $i = 1 To $aCombo[0]
            If $aValues[$i] Or  $aValuesC[$i] Then
				$sData &= '• '
				_GUICtrlRichEdit_AppendText($iEdit, $sData)
				$sData &= GUICtrlRead($aCombo[$i]) & ": "
				_GUICtrlRichEdit_SetCharAttributes($iEdit, "+bo")
				_GUICtrlRichEdit_AppendText($iEdit, $sData)
				_GUICtrlRichEdit_SetCharAttributes($iEdit, "-bo")
				$sData &= $aValues[$i] & " мм (ШхГхВ); " & $aValuesC[$i] & @CRLF
				_GUICtrlRichEdit_AppendText($iEdit, $sData)
			Else
			EndIf
        Next
        ;GUICtrlSetData($iEdit, $sData)
		_GUICtrlRichEdit_SetText($iEdit, $sData)


    EndIf
EndFunc   ;==>_UpdateEdit

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    Switch _WinAPI_HiWord($wParam)
        Case $CBN_SETFOCUS
            Switch _WinAPI_LoWord($wParam)
                Case $aCombo[1]
                    $iFocusIndex = 1
                    _UpdateList(1)
                Case $aCombo[2]
                    $iFocusIndex = 2
                    _UpdateList(2)
                Case $aCombo[3]
                    $iFocusIndex = 3
                    _UpdateList(3)
                Case $aCombo[4]
                    $iFocusIndex = 4
                    _UpdateList(4)
                Case $aCombo[5]
                    $iFocusIndex = 5
                    _UpdateList(5)
            EndSwitch
    EndSwitch
EndFunc   ;==>WM_COMMAND
 
Верх