Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получить список шрифтов в Access / 19 сообщений из 19, страница 1 из 1
31.10.2017, 15:31
    #39545327
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Мне тут захотелось создать свой выпадающий список с установленными шрифтами

Попробовал тупо извлечь List из стандартной кнопки "Шрифт". Но в окне LocalWindow такого нет
Может, кто знает ещё способы?
Код: vbnet
1.
2.
3.
4.
    Dim j As Object
    
    Set j = Application.CommandBars("Format").Controls(1)
    Debug.Print j.List(1)
...
Рейтинг: 0 / 0
31.10.2017, 16:00
    #39545353
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Настаев,

Надежнее всего через API получить. Вот готовая функция. http://access.mvps.org/access/api/api0061.htm
...
Рейтинг: 0 / 0
31.10.2017, 16:08
    #39545361
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Настаев,

вот готовый пример 9861117
...
Рейтинг: 0 / 0
31.10.2017, 16:22
    #39545377
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
MrShin, Спасбио
Я залепил себе этот код, но тут не ясно, какую из процедур надо запускать. Они все с аргументами. В последнюю надо передать аргумент типа Control. Но сама эта функция имеет тип Boolean. Чё-то я не догняю, как их использовать
...
Рейтинг: 0 / 0
31.10.2017, 16:43
    #39545407
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
НастаевЯ залепил себе этот код, но тут не ясно, какую из процедур надо запускать
Там же есть пример в mdb. Но, может я не совсем понял, что именно нужно - жто диалог выбора шрифтов, не список для произвольного использования.
...
Рейтинг: 0 / 0
31.10.2017, 20:34
    #39545591
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
MrShin, ты понял всё верно. Мне нужен выбор шрифта в любом виде (этто не важно)
Вложенный файл я не могу открыть в офисе 16-м. Пишет, чтоо старый формат. Я был бы благодарен, если бы вы эксспортировали из него модули и приложили сюда в сообщение. Дальше я разберусь...

ещё раз спасибо
...
Рейтинг: 0 / 0
01.11.2017, 00:16
    #39545668
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
guest_rusimport,

строка AddressOf ругается
...
Рейтинг: 0 / 0
01.11.2017, 03:59
    #39545690
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Настаевguest_rusimport,

строка AddressOf ругаетсяНадеюсь матом?
...
Рейтинг: 0 / 0
01.11.2017, 06:38
    #39545703
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
НастаевВложенный файл я не могу открыть в офисе 16-м
Да, без проблем. Конвертировал 10-м акцессом.
...
Рейтинг: 0 / 0
01.11.2017, 06:56
    #39545706
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Настаевguest_rusimport,

строка AddressOf ругается
Не плохо бы вам привести здесь текст сообщения об ошибке, а пока приходиться только догадываться, посмотрите , например это http://www.sql.ru/forum/844548/subclassing-v-64-bit
...
Рейтинг: 0 / 0
01.11.2017, 08:40
    #39545731
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Желательно так же привести версию и разрядность Офиса. Ну и скриншот ошибки....
...
Рейтинг: 0 / 0
01.11.2017, 10:07
    #39545777
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Настаев,
возможно устроит список только шрифтов офиса 1055470 ?
...
Рейтинг: 0 / 0
01.11.2017, 21:34
    #39546417
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
guest_rusimport, думаю это сработает. Но я не устанавливал Word
...
Рейтинг: 0 / 0
01.11.2017, 22:01
    #39546422
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
JossЖелательно так же привести версию и разрядность Офиса. Ну и скриншот ошибки....

Ваш файл запускается, только... ыы Лучше показать
Гляньте, я записал: https://1drv.ms/u/s!AgdIKAjNMjI9gsBbFuergbsGOzPbvA
...
Рейтинг: 0 / 0
01.11.2017, 22:02
    #39546424
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
JossЖелательно так же привести версию и разрядность Офиса. Ну и скриншот ошибки....

Офис 2016 х64
...
Рейтинг: 0 / 0
01.11.2017, 22:43
    #39546431
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
Попробуйте. Через WMI, читая реестр. Для 32-битной Win7
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub ScanFont()
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Const fontKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\"

Const sComp = "MyCompName" 'сетевое имя компьютера
 
Dim pRegistry As Object, arrValues, arrTypes
Dim curValue, fontName As String, fontFile As String, fontType As String
Set pRegistry = GetObject("winmgmts://" & sComp & "/root/default:StdRegProv")
pRegistry.EnumValues HKLM, fontKey, arrValues, arrTypes
For Each curValue In arrValues
    Debug.Print curValue
Next
End Sub
...
Рейтинг: 0 / 0
02.11.2017, 01:39
    #39546460
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
mds_world,
оО, приятель, это так хорошо работает )))
Я безмерно счастлив (3 дня не мог решить эту проблему)
Работает на Офис 16 х64 без проблем

Примечание: вместо константы с именем компьютера мне пришлось использовать переменную окружения (я не знаю заранее, на какой машине будет работать программа)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
    Const fontKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\"
    
    Dim pRegistry As Object, arrValues, arrTypes
    Dim curValue, fontName As String, fontFile As String, fontType As String
    
    Set pRegistry = GetObject("winmgmts://" & Environ("COMPUTERNAME") & "/root/default:StdRegProv")
    
    pRegistry.EnumValues HKLM, fontKey, arrValues, arrTypes
    
    For Each curValue In arrValues
        
        Debug.Print curValue
    
    Next
    
...
Рейтинг: 0 / 0
02.11.2017, 04:13
    #39546467
\\\\
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
НастаевJossЖелательно так же привести версию и разрядность Офиса. Ну и скриншот ошибки....

Офис 2016 х64Потому и ругалось, что (для примера) Ошибка при работе в WIN7 (64-раз) Access10 (64-раз)
В общем проблема с типами у тебя (о чём не двусмысленно говорит текст ошибки), например хэндл окна для 64битного офиса по типу должен быть
Код: vbnet
1.
Dim hWnd As LongPtr

И далее по тексту...
...
Рейтинг: 0 / 0
02.11.2017, 04:32
    #39546475
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список шрифтов в Access
\\\\,

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


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