Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #NoTrayIcon
- #include <ListViewConstants.au3>
- #include <GUIConstantsEx.au3>
- #include <GuiListView.au3>
- #include <WinAPIEx.au3>
- #include <FontConstants.au3>
- #include <ComboConstants.au3>
- #include <WindowsConstants.au3>
- Opt('GUIDataSeparatorChar', @TAB)
- Local $hGUI, $idListView, $idComboBlock, $idComboFont, $sTmp, $aFonts, $sFonts = ''
- Local $aRange[35][2] = [[34, 0], _
- [0x0020, 0x007F], _
- [0x0080, 0x00FF], _
- [0x0100, 0x017F], _
- [0x0180, 0x024F], _
- [0x0250, 0x02AF], _
- [0x02B0, 0x02FF], _
- [0x0300, 0x036F], _
- [0x0370, 0x03FF], _
- [0x0400, 0x04FF], _
- [0x0500, 0x052F], _
- [0x0530, 0x058F], _
- [0x0590, 0x05FF], _
- [0x0600, 0x06FF], _
- [0x0700, 0x074F], _
- [0x0750, 0x077F], _
- [0x0780, 0x07BF], _
- [0x07C0, 0x07FF], _
- [0x0800, 0x083F], _
- [0x0840, 0x085F], _
- [0x0860, 0x086F], _
- [0x08A0, 0x08FF], _
- [0x0900, 0x097F], _
- [0x0980, 0x09FF], _
- [0x0A00, 0x0A7F], _
- [0x0A80, 0x0AFF], _
- [0x0B00, 0x0B7F], _
- [0x0B80, 0x0BFF], _
- [0x0C00, 0x0C7F], _
- [0x0C80, 0x0CFF], _
- [0x0D00, 0x0D7F], _
- [0x0D80, 0x0DFF], _
- [0x0E00, 0x0E7F], _
- [0x0E80, 0x0EFF], _
- [0x0F00, 0x0FFF]]
- $hGUI = GUICreate("ListView", 580, 440)
- Local $sListName = '1' & @TAB & '2' & @TAB & '3' & @TAB & '4' & @TAB & '5' & @TAB & '6' & @TAB & '7' & @TAB & '8' & @TAB & '9' & @TAB & '10' & @TAB & '11' & @TAB & '12' & @TAB & '13' & @TAB & '14' & @TAB & '15' & @TAB & '16'
- $idListView = GUICtrlCreateListView($sListName, 10, 50, 560, 380, $LVS_REPORT + $LVS_NOCOLUMNHEADER, $LVS_EX_GRIDLINES)
- $idComboBlock = GUICtrlCreateCombo('', 10, 20, 340, 24)
- GUICtrlSetData($idComboBlock, '1. Основная латиница (0020 - 007F)' & @TAB & _
- '2. Дополнение к латинице - 1 (0080 - 00FF)' & @TAB & _
- '3. Расширенная латиница - A (0100 - 017F)' & @TAB & _
- '4. Расширенная латиница - B (0180 - 024F)' & @TAB & _
- '5. Расширения МФА (0250 - 02AF)' & @TAB & _
- '6. Модификаторы букв (02B0 - 02FF)' & @TAB & _
- '7. Комбинируемые диакритические знаки (0300 - 036F)' & @TAB & _
- '8. Греческое и коптское письмо (0370 - 03FF)' & @TAB & _
- '9. Кириллица (0400 - 04FF)' & @TAB & _
- '10. Дополнение к кириллице (0500 - 052F)' & @TAB & _
- '11. Армянское письмо (0530 - 058F)' & @TAB & _
- '12. Иврит (0590 - 05FF)' & @TAB & _
- '13. Арабское письмо (0600 - 06FF)' & @TAB & _
- '14. Сирийское письмо (0700 - 074F)' & @TAB & _
- '15. Дополнение к арабскому письму (0750 - 077F)' & @TAB & _
- '16. Тана (0780 - 07BF)' & @TAB & _
- '17. Нко (07C0 - 07FF)' & @TAB & _
- '18. Самаритянское письмо (0800 - 083F)' & @TAB & _
- '19. Мандейское письмо (0840 - 085F)' & @TAB & _
- '20. Дополнение к сирийскому письму (0860 - 086F)' & @TAB & _
- '21. Расширенное арабское письмо - A (08A0 - 08FF)' & @TAB & _
- '22. Деванагари (0900 - 097F)' & @TAB & _
- '23. Бенгальское письмо (0980 - 09FF)' & @TAB & _
- '24. Гурмукхи (0A00 - 0A7F)' & @TAB & _
- '25. Гуджарати (0A80 - 0AFF)' & @TAB & _
- '26. Ория (0B00 - 0B7F)' & @TAB & _
- '27. Тамильское письмо (0B80 - 0BFF)' & @TAB & _
- '28. Телугу (0C00 - 0C7F)' & @TAB & _
- '29. Каннада (0C80 - 0CFF)' & @TAB & _
- '30. Малаялам (0D00 - 0D7F)' & @TAB & _
- '31. Сингальское письмо (0D80 - 0DFF)' & @TAB & _
- '32. Тайское письмо (0E00 - 0E7F)' & @TAB & _
- '33. Лаосское письмо (0E80 - 0EFF)' & @TAB & _
- '34. Тибетское письмо (0F00 - 0FFF)', '1. Основная латиница (0020 - 007F)')
- $idComboFont = GUICtrlCreateCombo('', 360, 20, 200, 24, $CBS_DROPDOWN + $CBS_AUTOHSCROLL + $WS_VSCROLL + $WS_TABSTOP + $CBS_SORT)
- $aFonts = _WinAPI_EnumFontFamilies(0, '', $DEFAULT_CHARSET, -1, '@*', 1)
- If @error Then
- GUICtrlSetData($idComboFont, 'Arial', 'Arial')
- Else
- For $i = 1 To $aFonts[0][0]
- If ($i > 1) And ($aFonts[$i][0] = $aFonts[$i - 1][0]) Then ContinueLoop
- $sFonts &= $aFonts[$i][0]
- $sFonts &= @TAB
- Next
- GUICtrlSetData($idComboFont, StringTrimRight($sFonts, 1), 'Arial')
- EndIf
- GUICtrlSetFont($idListView, 10, 400, 1, 'Arial')
- _SetSymbols(1)
- GUISetState()
- While 1
- Switch GUIGetMsg()
- Case $GUI_EVENT_CLOSE
- Exit
- Case $idComboBlock
- $sTmp = GUICtrlRead($idComboBlock)
- _SetSymbols(Int(StringReplace(StringLeft($sTmp, 2), '.', '')))
- Case $idComboFont
- $sTmp = GUICtrlRead($idComboFont)
- GUICtrlDelete($idListView)
- $idListView = GUICtrlCreateListView($sListName, 10, 50, 560, 380, $LVS_REPORT + $LVS_NOCOLUMNHEADER, $LVS_EX_GRIDLINES)
- GUICtrlSetFont($idListView, 10, 400, 1, $sTmp)
- $sTmp = GUICtrlRead($idComboBlock)
- _SetSymbols(Int(StringReplace(StringLeft($sTmp, 2), '.', '')))
- EndSwitch
- WEnd
- Func _SetSymbols($iI)
- Local $sL = '', $iN = 0, $iS = $aRange[$iI][0]
- GUICtrlSendMsg($idListView, $__LISTVIEWCONSTANT_WM_SETREDRAW, 0, 0)
- GUICtrlSendMsg($idListView, $LVM_DELETEALLITEMS, 0, 0)
- While $iS < $aRange[$iI][1]
- $sL &= ChrW($iS)
- $sL &= @TAB
- $iS += 1
- $iN += 1
- If $iN = 16 Then
- $sL = StringTrimRight($sL, 1)
- GUICtrlCreateListViewItem($sL, $idListView)
- $sL = ''
- $iN = 0
- EndIf
- WEnd
- GUICtrlSendMsg($idListView, $__LISTVIEWCONSTANT_WM_SETREDRAW, 1, 0)
- Return 1
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment