Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Енумы свойств формы / 16 сообщений из 16, страница 1 из 1
11.04.2004, 14:47
    #32476769
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Думаю, что никто не ответит, но все равно напишу

нужно получить список енумов по названию свойства формы

значение енума и его название...
...
Рейтинг: 0 / 0
11.04.2004, 15:00
    #32476773
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
А кто это такие?
...
Рейтинг: 0 / 0
11.04.2004, 15:20
    #32476783
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Кажется, дошло. Но разве они там есть? Каждое свойство действительно принимает значения из какого-то списка, однако разве можно к ним обращаться по синтаксису енумов?
...
Рейтинг: 0 / 0
11.04.2004, 15:33
    #32476785
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Есть ,Саныч. OBJECT BROWSER умеет же читать эти свойства,. В принципе ,вся эта информация хранится в TLB файлах каждого СОМ объекта. Но вот есть ли из VB доступ к ним, я не знаю.
...
Рейтинг: 0 / 0
11.04.2004, 15:38
    #32476787
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Можно пример? Как увидеть в Object Browser'е хотя бы один пример?
...
Рейтинг: 0 / 0
11.04.2004, 15:46
    #32476789
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Саныч, ты шутишь? Открой OBJECT BROWSER , выбери любой обьект и ты увидишь все его методы,члены, перечисления, etc. (Кстати енум-еще одно слово в твою коллекцию терминов )
...
Рейтинг: 0 / 0
11.04.2004, 15:50
    #32476790
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Что значит любой? Набираю в строке поиска слово BorderStyle. Получаю в верхней половине экрана несколько строк, выбираю Access - TextBox - BorderStyle. Кликаю по ней, получаю в нижней половине экрана TextBox - BorderStyle. Ну и где его енумы???
...
Рейтинг: 0 / 0
11.04.2004, 16:14
    #32476797
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Вот набросал, только подключите TlbInf32.dll (ставится с Visual Studio)
Дает список всех Enum-ов с константами для всех подключенных библиотек.
(Конечно лучше в в списки загонять, но так проще показать пример)
Дополнительно можно пройти по свойствам объектов и определить какие свойства задаются через Enum. Я подобное делал, только для функций.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Public Sub EnumEnums()
    Dim ref As Object
    Dim m_TLInf As TypeLibInfo
    Dim SIType As SearchItem
    Dim SIMember As SearchItem
    Dim MInfo As MemberInfo
    On Error GoTo HandleErr
    Set m_TLInf = New TypeLibInfo
    With m_TLInf
 1         For Each ref In VBE.ActiveVBProject.References
 2             .ContainingFile = ref.FullPath
 3             Debug.Print ref.name
 4             For Each SIType In .GetTypes
 5                 If SIType.SearchType = tliStConstants Then '4'
 6                     If .GetTypeInfo(SIType.TypeInfoNumber).TypeKind = TKIND_ENUM Then ' TKIND_ENUM=0'
 7                         Debug.Print  "    "  & SIType.name
 8                         For Each SIMember In .GetMembers(SIType.SearchData)
 9                          Set MInfo = m_TLInf.GetMemberInfo(SIType.SearchData, SIMember.InvokeKinds, , SIMember.name)
 10                             Debug.Print  "        "  & SIMember.name &  " Value: "  & MInfo.Value
 11                         Next SIMember
 12                     End If
 13                 End If
 14             Next SIType
 15         Next ref
    End With
            
HandleExit:
    Exit Sub
HandleErr:
    Debug.Print  "GetEnums error: "  & Err.number &  " "  & Err.Description &  " Line: "  & Erl
    Resume HandleExit
End Sub
...
Рейтинг: 0 / 0
11.04.2004, 16:21
    #32476802
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
WOW!!! Круто, однако. Я сделал печать в файл - получил 1299 строк.

Но похоже, что по имени свойства оно ничего найти все равно не позволит.
...
Рейтинг: 0 / 0
11.04.2004, 16:39
    #32476807
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
авторНо похоже, что по имени свойства оно ничего найти все равно не позволит.

Я может быть не понял Алексея, потому, что у формы Access (как и у контролов) нет по моему ни одного свойства, определяемого через Enum.
Другое дело Office, Excel ...
Например, для CommandBarButton свойство Style As MsoButtonStyle
Где MsoButtonStyle это имя Enum, содержащего константы
Const msoButtonIcon = 1
Const msoButtonIconAndCaption = 3
и т.д.

Но, к чему я клоню, через TLI можно получить очень много ....
В том числе и перечень свойств конретного контрола конкретной формы, может это имел ввиду Алексей?
...
Рейтинг: 0 / 0
11.04.2004, 16:47
    #32476811
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Я понял вопрос так: например, свойство BorderStyle контрола может иметь одно из 8 значений, перечисляемых списком (прозрачный и т.д.), у каждого из этих 8 значений есть именованная константа, которой можно пользоваться вместо соответствующего целого числа. И вопрос в том, как получить эти 8 констант с их значениями, задав название свойства BorderStyle.
...
Рейтинг: 0 / 0
11.04.2004, 17:09
    #32476817
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
авторнапример, свойство BorderStyle контрола может иметь одно из 8 значений, перечисляемых списком

Увы, это свойство как и многие другие не задается как Enum
Property BorderStyle As Byte
Причем, ты говоришь:
автору каждого из этих 8 значений есть именованная константа
этого я в access не вижу. А в VB есть
vbBSNone 0
vbFixedSingle 1
...
Но они не работают в Access (не исключено, что я плохо смотрел)
Если Алексею надо это, то боюсь, что это невозможно.
Недоработка создателей Access
...
Рейтинг: 0 / 0
11.04.2004, 17:15
    #32476819
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Да, всё так и есть.
...
Рейтинг: 0 / 0
11.04.2004, 17:29
    #32476822
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Да, чувствуется рука мастера!. Я когда-то что -то подобное на С++ делал. А оказывается все так просто. Век живи-век учись (заканчивать поговорку не буду )
...
Рейтинг: 0 / 0
11.04.2004, 18:24
    #32476827
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
Вау сколько написали... )))
...
Рейтинг: 0 / 0
11.04.2004, 18:51
    #32476838
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Енумы свойств формы
да уж енумов немеряно но все они гады члены библиотеки аксесс..
и к названию свойства никак не привязать.

сам то он сволочь как -то это делает (в property sheet формы - поле со списком хотя это не совсем енумы - язык то русский у руского аксесса) ...

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


Как всегда Серж поверг меня в шок.. ))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Енумы свойств формы / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]