powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Получить список шрифтов в Access
19 сообщений из 19, страница 1 из 1
Получить список шрифтов в Access
    #39545327
Настаев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне тут захотелось создать свой выпадающий список с установленными шрифтами

Попробовал тупо извлечь 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
Получить список шрифтов в Access
    #39545353
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настаев,

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

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

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

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

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

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

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

Офис 2016 х64
...
Рейтинг: 0 / 0
Получить список шрифтов в Access
    #39546431
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте. Через 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
Получить список шрифтов в Access
    #39546460
Настаев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Получить список шрифтов в Access
    #39546467
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НастаевJossЖелательно так же привести версию и разрядность Офиса. Ну и скриншот ошибки....

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

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

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


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