Как сделать часть значения 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