Получить имя константы или переменной - VB

Узнай цену своей работы

Формулировка задачи:

В одном из моих разрабатавемемых компонентов есть следующий набор:
Листинг программы
  1. Public Enum CSIDL_RU
  2. [папка "Администрирование" (NT)] = &H30
  3. [данные приложений] = &H1A
  4. [общая папка "Администрирование" (NT)] = &H2F
  5. [общие данные приложений] = &H23
  6. [общий рабочий стол] = &H19
  7. [общие документы] = &H2E
  8. [общее "Избранное"] = &H1F
  9. [общие программы] = &H17
  10. [общее меню "Пуск"] = &H16
  11. [общая автозагрузка] = &H18
  12. [общие шаблоны] = &H2D
  13. [соединения с сетью] = &H31
  14. [файлы cookie] = &H21
  15. [рабочий стол] = &H0
  16. [полный путь к рабочему столу] = &H10
  17. [избранное] = &H6
  18. [шрифты] = &H14
  19. [журнал] = &H22
  20. [кэш страниц IE] = &H20
  21. [локальные настройки программ] = &H1C
  22. [мои рисунки] = &H27
  23. [личная папка] = &H5
  24. [мои документы] = &H28
  25. [папка Program Files] = &H26
  26. [общая папка Program Files] = &H2B
  27. [программы] = &H2
  28. [недавние документы] = &H8
  29. [меню "Отправить"] = &H9
  30. [меню "Пуск"] = &HB
  31. [автозагрузка] = &H7
  32. [системная папка] = &H25
  33. [шаблоны] = &H15
  34. [папка Windows] = &H24
  35. End Enum
можно ли получить имя константы из этого набора для того, чтоб отобразить в заголовке окна и т.п ? ✰ ✰ ✰ в идеале было бы олично чтоб имя той или иной константы можно было получить используя класс Dictionary например txt$ = dicCSIDL_RU.Item(&H30) результат: txt = "папка "Администрирование" (NT)"

Решение задачи: «Получить имя константы или переменной»

textual
Листинг программы
  1. Option Explicit
  2. 'Default Property Values:
  3.  
  4. '//////////////////////////////////////////...ENUMS
  5. Public Enum StyleBrowseFlags_ru
  6.     [по умолчанию] = &H40
  7.     [убрать кнопку "создать папку"] = &H200
  8.     [отображать файлы] = &H4000
  9.     [дополнительное текстовое поле] = &H10
  10. End Enum
  11.  
  12. Public Enum TopFolderFlags_ru
  13.     [папка "Администрирование" (NT)] = &H30
  14.     [данные приложений] = &H1A
  15.     [общая папка "Администрирование" (NT)] = &H2F
  16.     [общие данные приложений] = &H23
  17.     [общий рабочий стол] = &H19
  18.     [общие документы] = &H2E
  19.     [общее "Избранное"] = &H1F
  20.     [общие программы] = &H17
  21.     [общее меню "Пуск"] = &H16
  22.     [общая автозагрузка] = &H18
  23.     [общие шаблоны] = &H2D
  24.     [соединения с сетью] = &H31
  25.     [файлы cookie] = &H21
  26.     [рабочий стол] = &H0
  27.     [полный путь к рабочему столу] = &H10
  28.     [избранное] = &H6
  29.     [шрифты] = &H14
  30.     [журнал] = &H22
  31.     [кэш страниц IE] = &H20
  32.     [локальные настройки программ] = &H1C
  33.     [мои рисунки] = &H27
  34.     [личная папка] = &H5
  35.     [мои документы] = &H28
  36.     [папка Program Files] = &H26
  37.     [общая папка Program Files] = &H2B
  38.     [программы] = &H2
  39.     [недавние документы] = &H8
  40.     [меню "Отправить"] = &H9
  41.     [меню "Пуск"] = &HB
  42.     [автозагрузка] = &H7
  43.     [системная папка] = &H25
  44.     [шаблоны] = &H15
  45.     [папка Windows] = &H24
  46. End Enum
  47.  
  48. Public Enum StyleFlags_ru
  49.     [минимальный набор] = 0
  50.     [дополнительный флажок] = 1
  51.     [полный набор] = 2
  52. End Enum
  53. '//////////////////////////////////////////...END ENUMS
  54. Const m_def_BackColor = &H8000000F
  55. Const m_def_StyleBrowse = StyleBrowseFlags_ru.[по умолчанию]
  56. Const m_def_Style = StyleFlags_ru.[минимальный набор]
  57. Const m_def_TopFolder = TopFolderFlags_ru.[рабочий стол]
  58. Const m_def_EnabledButton2 = 1
  59. Const m_def_EnabledCheck = 1
  60. 'Property Variables:
  61. Dim m_EnabledButton2 As Boolean
  62. Dim m_EnabledCheck As Boolean
  63. Dim m_TopFolder As TopFolderFlags_ru
  64. Dim m_StyleBrowse As StyleBrowseFlags_ru
  65. Dim m_Style As StyleFlags_ru
  66. Dim m_BackColor As OLE_COLOR
  67. Dim m_Dic As Object 'Dim m_Dic As Dictionary
  68. 'Event Declarations:
  69. Event ClickButton2(Combo As Object) 'MappingInfo=Command2,Command2,-1,Click
  70. Event ClickCheck(Value As Integer) 'MappingInfo=Check1,Check1,-1,Click
  71. Event SelectPath(Path$, Combo As Object) 'MappingInfo=Combo1,Combo1,-1,Click
  72.  
  73. Private Sub Command1_Click()
  74.     Dim Path$
  75.     Path = BrowseForFolder(hwnd, Frame1.Caption, Combo1.Text, m_TopFolder, m_StyleBrowse)
  76.  
  77.     If Len(Path) Then
  78.  
  79.         If Not m_Dic.Exists(Path) Then
  80.             Combo1.AddItem Path
  81.         End If
  82.         Combo1.Text = Path
  83.         Combo1.SelLength = Len(Path)
  84.         RaiseEvent SelectPath(Path, Combo1)
  85.         DicComboRefresh
  86.     End If
  87. End Sub
  88.  
  89. Private Sub UserControl_Initialize()
  90.     Set m_Dic = CreateObject("Scripting.Dictionary")
  91.     m_Dic.CompareMode = 1
  92.     Picture1.BorderStyle = 0
  93. End Sub
  94.  
  95. Private Sub UserControl_Show()
  96.     Dim o As Object
  97.     On Error Resume Next
  98.  
  99.     For Each o In UserControl:
  100.         If TypeName(o) <> "ComboBox" Then o.BackColor() = m_BackColor
  101.  
  102.         If UserControl.Enabled Then 'Выключение компонентов
  103.  
  104.             Select Case o.Name
  105.             Case "Check1": o.Enabled = m_EnabledCheck
  106.             Case "Command2": o.Enabled = m_EnabledButton2
  107.             Case Else: o.Enabled = True
  108.             End Select
  109.         Else
  110.             o.Enabled = False
  111.         End If
  112.     Next
  113. End Sub
  114.  
  115. Private Sub UserControl_Terminate()
  116.     Set m_Dic = Nothing
  117. End Sub
  118.  
  119. Private Sub UserControl_Resize()
  120.     Dim tx&, ty&, ogrY&
  121.     Const c1 = 3
  122.     On Error Resume Next
  123.     tx = Screen.TwipsPerPixelX: ty = Screen.TwipsPerPixelY
  124.     Height = IIf(m_Style = 0, Combo1.Height + ty * ty + ty * c1, Combo1.Height + ty * ty * c1)
  125.     Frame1.Move 0, 0, ScaleWidth, ScaleHeight
  126.     Picture1.Move tx, ty * ty, ScaleWidth - tx * 2, ScaleHeight - ty * ty - ty
  127.     Label1.Caption = Command1.Caption
  128.     Command1.Width = Label1.Width + tx * tx
  129.     Combo1.Move tx * c1, 0, Picture1.Width - Command1.Width - tx * c1 * c1
  130.     Command1.Move Combo1.Width + tx * c1 * 2, 0, Command1.Width, Combo1.Height
  131.     '--------------------------
  132.    Select Case m_Style
  133.     Case [минимальный набор]
  134.         Check1.Visible = False
  135.         Command2.Visible = False
  136.     Case [дополнительный флажок]
  137.         Check1.Move tx * c1, Combo1.Height + ty * c1, Combo1.Width
  138.         Check1.Visible = True
  139.         Command2.Visible = False
  140.     Case [полный набор]
  141.         Label1.Caption = Command2.Caption
  142.         Command2.Width = Label1.Width + tx * tx
  143.         Check1.Move tx * c1, Combo1.Height + ty * c1, Picture1.Width - Command2.Width - tx * c1 * c1
  144.         Command2.Move Picture1.Width - Command2.Width - tx * c1, Check1.Top, Command2.Width, Combo1.Height
  145.         Check1.Visible = True
  146.         Command2.Visible = True
  147.     End Select
  148. End Sub
  149.  
  150. 'Initialize Properties for User Control
  151. Private Sub UserControl_InitProperties()
  152.     m_BackColor = m_def_BackColor
  153.     m_StyleBrowse = m_def_StyleBrowse
  154.     m_Style = m_def_Style
  155.     m_TopFolder = m_def_TopFolder
  156.     m_EnabledButton2 = m_def_EnabledButton2
  157.     m_EnabledCheck = m_def_EnabledCheck
  158. End Sub
  159.  
  160. 'Load property values from storage
  161. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  162.     Frame1.Caption = PropBag.ReadProperty("Caption", "Выбор папки")
  163.     Command1.Caption = PropBag.ReadProperty("CaptionButton1", "Обзор")
  164.     Command2.Caption = PropBag.ReadProperty("CaptionButton2", "Дополнительно")
  165.     Check1.Caption = PropBag.ReadProperty("CaptionCheck", "Разрешить")
  166.     Check1.Value = PropBag.ReadProperty("Value", 0)
  167.     UserControl.Enabled = PropBag.ReadProperty("Enabled", True)
  168.     Command2.Enabled = PropBag.ReadProperty("EnabledButton2", True)
  169.     m_BackColor = PropBag.ReadProperty("BackColor", m_def_BackColor)
  170.     m_StyleBrowse = PropBag.ReadProperty("StyleBrowse", m_def_StyleBrowse)
  171.     m_Style = PropBag.ReadProperty("Style", m_def_Style)
  172.     m_TopFolder = PropBag.ReadProperty("TopFolder", m_def_TopFolder)
  173.     m_EnabledButton2 = PropBag.ReadProperty("EnabledButton2", m_def_EnabledButton2)
  174.     m_EnabledCheck = PropBag.ReadProperty("EnabledCheck", m_def_EnabledCheck)
  175. End Sub
  176.  
  177. 'Write property values to storage
  178. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  179.     Call PropBag.WriteProperty("Caption", Frame1.Caption, "Выбор папки")
  180.     Call PropBag.WriteProperty("CaptionButton1", Command1.Caption, "Обзор")
  181.     Call PropBag.WriteProperty("CaptionButton2", Command2.Caption, "Дополнительно")
  182.     Call PropBag.WriteProperty("CaptionCheck", Check1.Caption, "Разрешить")
  183.     Call PropBag.WriteProperty("Value", Check1.Value, 0)
  184.     Call PropBag.WriteProperty("Enabled", UserControl.Enabled, True)
  185.     Call PropBag.WriteProperty("EnabledButton2", Command2.Enabled, True)
  186.     Call PropBag.WriteProperty("BackColor", m_BackColor, m_def_BackColor)
  187.     Call PropBag.WriteProperty("StyleBrowse", m_StyleBrowse, m_def_StyleBrowse)
  188.     Call PropBag.WriteProperty("Style", m_Style, m_def_Style)
  189.     Call PropBag.WriteProperty("TopFolder", m_TopFolder, m_def_TopFolder)
  190.     Call PropBag.WriteProperty("EnabledButton2", m_EnabledButton2, m_def_EnabledButton2)
  191.     Call PropBag.WriteProperty("EnabledCheck", m_EnabledCheck, m_def_EnabledCheck)
  192. End Sub
  193.  
  194. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  195. 'MappingInfo=Frame1,Frame1,-1,Caption
  196. Public Property Get Caption() As String
  197.     Caption = Frame1.Caption
  198. End Property
  199.  
  200. Public Property Let Caption(ByVal New_Caption As String)
  201.     Frame1.Caption() = New_Caption
  202.     PropertyChanged "Caption"
  203. End Property
  204.  
  205. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  206. 'MappingInfo=Command1,Command1,-1,Caption
  207. Public Property Get CaptionButton1() As String
  208.     CaptionButton1 = Command1.Caption
  209. End Property
  210.  
  211. Public Property Let CaptionButton1(ByVal New_CaptionButton1 As String)
  212.     Command1.Caption() = New_CaptionButton1
  213.     UserControl_Resize
  214.     PropertyChanged "CaptionButton1"
  215. End Property
  216.  
  217. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  218. 'MappingInfo=Command2,Command2,-1,Caption
  219. Public Property Get CaptionButton2() As String
  220.     CaptionButton2 = Command2.Caption
  221. End Property
  222.  
  223. Public Property Let CaptionButton2(ByVal New_CaptionButton2 As String)
  224.     Command2.Caption() = New_CaptionButton2
  225.     UserControl_Resize
  226.     PropertyChanged "CaptionButton2"
  227. End Property
  228.  
  229. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  230. 'MappingInfo=Check1,Check1,-1,Caption
  231. Public Property Get CaptionCheck() As String
  232.     CaptionCheck = Check1.Caption
  233. End Property
  234.  
  235. Public Property Let CaptionCheck(ByVal New_CaptionCheck As String)
  236.     Check1.Caption() = New_CaptionCheck
  237.     PropertyChanged "CaptionCheck"
  238. End Property
  239.  
  240. Private Sub Combo1_Click()
  241.     RaiseEvent SelectPath(Combo1.Text, Combo1)
  242. End Sub
  243.  
  244. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  245. 'MappingInfo=Check1,Check1,-1,Value
  246. Public Property Get Value() As Integer
  247.     Value = Check1.Value
  248. End Property
  249.  
  250. Public Property Let Value(ByVal New_Value As Integer)
  251.     On Error Resume Next
  252.     Check1.Value() = New_Value
  253.     If Err Then MsgBox Err.Number & vbCrLf & Err.Description, vbCritical
  254.     PropertyChanged "Value"
  255. End Property
  256.  
  257. Public Property Get Enabled() As Boolean
  258.     Enabled = UserControl.Enabled
  259. End Property
  260.  
  261. Public Property Let Enabled(ByVal New_Enabled As Boolean)
  262.     Dim o As Object
  263.     UserControl.Enabled() = New_Enabled
  264.  
  265.     For Each o In UserControl: o.Enabled = New_Enabled
  266.     Next
  267.     PropertyChanged "Enabled"
  268. End Property
  269.  
  270. Private Sub DicComboRefresh()
  271.     Dim f&
  272.     On Error Resume Next
  273.     Combo1.Refresh
  274.     m_Dic.RemoveAll 'Обновление словаря !
  275.  
  276.     For f = 0 To Combo1.ListCount - 1
  277.         m_Dic.Add Combo1.List(f), Combo1.ItemData(f)
  278.     Next
  279.     Combo1.SetFocus
  280. End Sub
  281.  
  282. Private Sub Command2_Click()
  283.     RaiseEvent ClickButton2(Combo1)
  284.     DicComboRefresh
  285. End Sub
  286.  
  287. Private Sub Check1_Click()
  288.     RaiseEvent ClickCheck(Check1.Value)
  289. End Sub
  290.  
  291. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  292. 'MemberInfo=10,0,0,&H8000000F
  293. Public Property Get BackColor() As OLE_COLOR
  294.     BackColor = m_BackColor
  295. End Property
  296.  
  297. Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR)
  298.     m_BackColor = New_BackColor
  299.     UserControl_Show
  300.     PropertyChanged "BackColor"
  301. End Property
  302.  
  303. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  304. 'MemberInfo=25,0,0,0
  305. Public Property Get StyleBrowse() As StyleBrowseFlags_ru
  306.     StyleBrowse = m_StyleBrowse
  307. End Property
  308.  
  309. Public Property Let StyleBrowse(ByVal New_StyleBrowse As StyleBrowseFlags_ru)
  310.     m_StyleBrowse = New_StyleBrowse
  311.     PropertyChanged "StyleBrowse"
  312. End Property
  313.  
  314. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  315. 'MemberInfo=23,0,0,0
  316. Public Property Get Style() As StyleFlags_ru
  317.     Style = m_Style
  318. End Property
  319.  
  320. Public Property Let Style(ByVal New_Style As StyleFlags_ru)
  321.     m_Style = New_Style
  322.     UserControl_Resize
  323.     PropertyChanged "Style"
  324. End Property
  325.  
  326. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  327. 'MemberInfo=23,0,0,0
  328. Public Property Get TopFolder() As TopFolderFlags_ru
  329.     TopFolder = m_TopFolder
  330. End Property
  331.  
  332. Public Property Let TopFolder(ByVal New_TopFolder As TopFolderFlags_ru)
  333.     m_TopFolder = New_TopFolder
  334.     PropertyChanged "TopFolder"
  335. End Property
  336.  
  337. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  338. 'MemberInfo=0,0,0,1
  339. Public Property Get EnabledButton2() As Boolean
  340.     EnabledButton2 = m_EnabledButton2
  341. End Property
  342.  
  343. Public Property Let EnabledButton2(ByVal New_EnabledButton2 As Boolean)
  344.     m_EnabledButton2 = New_EnabledButton2
  345.     UserControl_Show
  346.     PropertyChanged "EnabledButton2"
  347. End Property
  348.  
  349. 'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
  350. 'MemberInfo=0,0,0,1
  351. Public Property Get EnabledCheck() As Boolean
  352.     EnabledCheck = m_EnabledCheck
  353. End Property
  354.  
  355. Public Property Let EnabledCheck(ByVal New_EnabledCheck As Boolean)
  356.     m_EnabledCheck = New_EnabledCheck
  357.     UserControl_Show
  358.     PropertyChanged "EnabledCheck"
  359. End Property

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы