|
автор: Аноним (03.10.2006 в 16:44) |
|
| Кто-нибудь знает, как можно подключить свой набор значков в список выбора
при настройке кнопок на панелях инструментов.
Причем, что-бы их свойство .FaceId не был равен 0 ??? | |
|
| |
|
|
|
| я не знаю. а зачем? | |
|
| |
|
автор: Аноним (03.10.2006 в 18:25) |
|
| Дизайн приложения, в частности на панелях инструментов.
Public Function qqq()
Set newItem = CommandBars("fpnlJournal").Controls.Add(Type:=14, id:=2666)
With newItem
.Caption = "qqq"
End With
End Function
С помощью подобной процедуры на панели инструментов можно создать CONTROL ,
работающий как новое меню в стиле контрола АНАЛИЗИРОВАТЬ на панели БАЗА ДАННЫХ:
т.е. в заголовке отображается не надпись, а значок последнего запущенного пункта в созданном списке пунктов меню.
И для случая "стандартных" значков (их .FaceId <>0) все работает просто отлично.
Но стоит отредактировать значок либо создать свой, как сразу же их .FaceId =0
и значок не отображается в "заголовке нашего меню".
Такая вот неувязка, которую хотелось бы обойти. | |
|
| |
|
|
|
| честно говоря, я не понял...
если не трудно, пожалуйста, объясните еще раз, что вы хотите получить.
Чувствую, что что-то интересное, но никак не пойму - ЧТО... | |
|
| |
|
автор: Аноним (04.10.2006 в 10:54) |
|
| Панель инструментов; кнопка меню с "выкатывающимся" списом пунктов;
на кнопке отображается не надпись, а значок;
причем значок последнего использованного пункта меню;
Значок "подтягивается" по свойству пункта меню .FaceId,
Если значок пункта меню отредактирован, либо создан встроенным редактором,
то его .FaceId := 0 и этот значок на кнопке вызова меню не отображается.
Все значки Access "лежат" где-то в какой-то DLL и извлекаются по их ID
Хотелось-бы "пользовательский" набор значков, используемый в приложении,
"загнать" в библиотечный файл, с тем, что-бы затем
каким-либо образом сделать доступным для применения по их библиотечным ID
в CommandBar
Это расширило бы область применения Controls.Add(Type:=14, id:=2666) | |
|
| |
|
|
|
| понятно.
иконки хранятся в какой-то DLL причем общей для всего офиса, предполагаю, что в MSO.DLL, но не уверен.
Можно конечно прямо в ней поменять, но ...
свою библиотеку тоже вряд ли удастся подцепить
мне кажется решение в применении методов CopyFace и PasteFace
т.е. создаете скрытый тулбар, кнопки которого содержат нужные иконки, копируете с нужной кнопки иконку и вставляете в ваш пункт меню | |
|
| |
|
|
|
| насколько я помню все "стандартные" значки Access хранятся в самом файле Access.exe, а не в отдельной или специальной DLL
я конечно могу ошибаться - пусть меня поправят старшие товарищи, но в такой уверенности я пребываю уже лет этак 10. | |
|
| |
|
|
|
| Вам не подходят CopyFace, PasteFace?
Вы какой Access используете?
Начиная с версии 2002(XP), вы можете использовать свойства Picture и Mask | |
|
| |
|
автор: Аноним (04.10.2006 в 12:48) |
|
| CopyFace, PasteFace не влияют на FaceId ( он остается = 0 для всех пользовательских значков, сохраняемых в базе данных),
это программный эквивалент копирования через буфер обмена
в форме настройки меню и панелей.
Свойства Picture, Mask не совсем понятны.
Не могли бы Вы пояснить их содержательную часть? | |
|
| |
|
|
|
| Для чего вам нужет FaceId? Для размещения рисунка на кнопке. Но почему этого нельзя сделать другим способом? | |
|
| |
|
|
|
| faceId -остается 0, но зато меняется картинка что и требовалось получить. | |
|
| |
|
|
|
| не совсем - он еще хочет чтобы при этом FaceID было не 0
насколько я понимаю это можно сделать только поменяв картинки в Access.exe файле | |
|
| |
|
|
|
| >не совсем - он еще хочет чтобы при этом FaceID было не 0
я так понял, что это нужно только для простого назначения рисунка на кнопку, а не само по себе | |
|
| |
|
|
|
| я, честно говоря, вообще не очень хорошо понял смысл всей этой затеи
читая вопрос буквально нашел решение только в модификации Access.exe :) | |
|
| |
|
автор: Аноним (04.10.2006 в 14:41) |
|
| Explorer похоже прав
Controls.Add(Type:=14, id:=2666) отображает значки с FaceID>0
их отображение из списка пунктов меню - то, что нужно
проблема возникает с "пользовательскими" значками
Их как то нужно "запихнуть" в библиотеку и вызывать по FaceId>0
Только в этом случае Controls.Add(Type:=14, id:=2666) будет правильно работать | |
|
| |
|
|
|
| самомтоятельно переписать файл access.exe
дисклаймер
1 это нарушение Российского законодательства
2 на машинах где access.exe не переписан не покатит | |
|
| |