Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Значки для кнопок на панели инструментов
 
 автор: Аноним   (03.10.2006 в 16:44)
 
 

Кто-нибудь знает, как можно подключить свой набор значков в список выбора
при настройке кнопок на панелях инструментов.
Причем, что-бы их свойство .FaceId не был равен 0 ???

  Ответить  
 
 автор: osmor   (03.10.2006 в 17:05)   личное сообщение
 
 

я не знаю. а зачем?

  Ответить  
 
 автор: Аноним   (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
и значок не отображается в "заголовке нашего меню".

Такая вот неувязка, которую хотелось бы обойти.

  Ответить  
 
 автор: osmor   (03.10.2006 в 21:48)   личное сообщение
 
 

честно говоря, я не понял...
если не трудно, пожалуйста, объясните еще раз, что вы хотите получить.
Чувствую, что что-то интересное, но никак не пойму - ЧТО...

  Ответить  
 
 автор: Аноним   (04.10.2006 в 10:54)
 
 

Панель инструментов; кнопка меню с "выкатывающимся" списом пунктов;
на кнопке отображается не надпись, а значок;
причем значок последнего использованного пункта меню;
Значок "подтягивается" по свойству пункта меню .FaceId,
Если значок пункта меню отредактирован, либо создан встроенным редактором,
то его .FaceId := 0 и этот значок на кнопке вызова меню не отображается.

Все значки Access "лежат" где-то в какой-то DLL и извлекаются по их ID
Хотелось-бы "пользовательский" набор значков, используемый в приложении,
"загнать" в библиотечный файл, с тем, что-бы затем
каким-либо образом сделать доступным для применения по их библиотечным ID
в CommandBar

Это расширило бы область применения Controls.Add(Type:=14, id:=2666)

  Ответить  
 
 автор: osmor   (04.10.2006 в 11:32)   личное сообщение
 
 

понятно.
иконки хранятся в какой-то DLL причем общей для всего офиса, предполагаю, что в MSO.DLL, но не уверен.
Можно конечно прямо в ней поменять, но ...
свою библиотеку тоже вряд ли удастся подцепить
мне кажется решение в применении методов CopyFace и PasteFace
т.е. создаете скрытый тулбар, кнопки которого содержат нужные иконки, копируете с нужной кнопки иконку и вставляете в ваш пункт меню

  Ответить  
 
 автор: Explorer   (04.10.2006 в 11:41)   личное сообщение
 
 

насколько я помню все "стандартные" значки Access хранятся в самом файле Access.exe, а не в отдельной или специальной DLL

я конечно могу ошибаться - пусть меня поправят старшие товарищи, но в такой уверенности я пребываю уже лет этак 10.

  Ответить  
 
 автор: Serge Gavrilov   (04.10.2006 в 11:43)   личное сообщение
 
 

Вам не подходят CopyFace, PasteFace?
Вы какой Access используете?
Начиная с версии 2002(XP), вы можете использовать свойства Picture и Mask

  Ответить  
 
 автор: Аноним   (04.10.2006 в 12:48)
 
 

CopyFace, PasteFace не влияют на FaceId ( он остается = 0 для всех пользовательских значков, сохраняемых в базе данных),
это программный эквивалент копирования через буфер обмена
в форме настройки меню и панелей.

Свойства Picture, Mask не совсем понятны.
Не могли бы Вы пояснить их содержательную часть?

  Ответить  
 
 автор: Serge Gavrilov   (04.10.2006 в 12:57)   личное сообщение
 
 

Для чего вам нужет FaceId? Для размещения рисунка на кнопке. Но почему этого нельзя сделать другим способом?

  Ответить  
 
 автор: osmor   (04.10.2006 в 12:58)   личное сообщение
 
 

faceId -остается 0, но зато меняется картинка что и требовалось получить.

  Ответить  
 
 автор: Explorer   (04.10.2006 в 13:47)   личное сообщение
 
 

не совсем - он еще хочет чтобы при этом FaceID было не 0

насколько я понимаю это можно сделать только поменяв картинки в Access.exe файле

  Ответить  
 
 автор: Serge Gavrilov   (04.10.2006 в 13:55)   личное сообщение
 
 

>не совсем - он еще хочет чтобы при этом FaceID было не 0
я так понял, что это нужно только для простого назначения рисунка на кнопку, а не само по себе

  Ответить  
 
 автор: Explorer   (04.10.2006 в 14:05)   личное сообщение
 
 

я, честно говоря, вообще не очень хорошо понял смысл всей этой затеи

читая вопрос буквально нашел решение только в модификации Access.exe :)

  Ответить  
 
 автор: Аноним   (04.10.2006 в 14:41)
 
 

Explorer похоже прав

Controls.Add(Type:=14, id:=2666) отображает значки с FaceID>0

их отображение из списка пунктов меню - то, что нужно

проблема возникает с "пользовательскими" значками

Их как то нужно "запихнуть" в библиотеку и вызывать по FaceId>0

Только в этом случае Controls.Add(Type:=14, id:=2666) будет правильно работать

  Ответить  
 
 автор: Explorer   (03.10.2006 в 17:54)   личное сообщение
 
 

самомтоятельно переписать файл access.exe

дисклаймер

1 это нарушение Российского законодательства
2 на машинах где access.exe не переписан не покатит

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList