Получение названий констант в рантайме - VB
Формулировка задачи:
Есть некий Public Enum состоящий из множества констант.
Есть ли возможность получить их названия в рантайме, чтобы вывести в списке на форме?
Смысл следующий. Все видели настройку тулбаров в Тотал Коммандере. Там есть некий список действий, которые может выпонять каждая кнопка.
Дык я хочу сделать то же самое в своей программе.
Решение задачи: «Получение названий констант в рантайме»
textual
Листинг программы
Option Explicit 'Help file for Type info library: 'C:Program FilesMicrosoft Visual StudioVB98VBWebSamplesTlbInf32TlbInf32.chm 'http://download.microsoft.com/download/vb60pro/update/6.0/w9x2k/en-us/tlbinfht.exe Private Enum eTYPEKIND TKIND_ENUM TKIND_RECORD TKIND_MODULE TKIND_INTERFACE TKIND_DISPATCH TKIND_COCLASS TKIND_ALIAS TKIND_UNION TKIND_MAX End Enum Private Sub Command1_Click() MsgBox GetEnumMemberName("DataTypeEnum", _ 128, _ "C:Program FilesCommon FilesSystemADOmsador15.dll", _ eTYPEKIND.TKIND_ENUM) End Sub Public Function GetEnumMemberName(ByVal pstrEnumName As String, _ ByVal plngEnumValue As Long, _ ByVal pstrFileName As String, _ ByVal pintTypeKind As Integer) As String Dim objTLIApp As TLIApplication Dim objCnstnt As ConstantInfo Dim objMemberInfo As MemberInfo Dim objTypeLibInfo As TypeLibInfo Set objTLIApp = New TLIApplication Set objTypeLibInfo = TLI.TypeLibInfoFromFile(pstrFileName) For Each objCnstnt In objTypeLibInfo.Constants Debug.Print objCnstnt.Name If objCnstnt.TypeKind = pintTypeKind And objCnstnt.Name = pstrEnumName Then For Each objMemberInfo In objCnstnt.Members If objMemberInfo.Value = plngEnumValue Then GetEnumMemberName = objMemberInfo.Name End If Next objMemberInfo End If Next objCnstnt Set objTLIApp = Nothing Set objCnstnt = Nothing Set objMemberInfo = Nothing Set objTypeLibInfo = Nothing End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д