|
v7: СписокЗначений с иконками. | ☑ | ||
---|---|---|---|---|
0
varelchik
11.10.12
✎
14:39
|
Народ натолкните на мысль как сделать свой собственный Список на подобии обычного контекстного меню для работы с ТП.
Чет заклинило никак неможу придумать. Может у кого есть наработки? |
|||
1
ADirks
11.10.12
✎
14:42
|
http://www.rikcenter.ru/download/NetaMenu.rar
+ небольшой класс ТМеню Перем нМеню; Перем нГруппа; Перем КолвоКартинок; //_____________________________________________________________________________ Функция Сам(Конт) Возврат Конт; КонецФункции //:Контекст ///******************************** ADirks 03.08.2006 Процедура Новое() Экспорт нМеню = 0; КолвоКартинок = 0; Сам(Контекст).ПолучитьБазовыйКласс().Новое(); КонецПроцедуры ///******************************** ADirks 03.08.2006 ///******************************** Павел 07.12.2010 // ИдентификаторПуть - идентификатор картинки или непосредственный путь к ней // ТипИдПути: // 0 - первый параметр это Идентификатор картинки // 1 - первый параметр - это путь к картинке Функция ДобавитьКартинку(ИдентификаторПуть, ТипИдПути = 0) Экспорт Если ТипИдПути = 0 Тогда Путь = глСписокКартинокПанели.Получить(ИдентификаторПуть); Иначе Путь = ИдентификаторПуть; КонецЕсли; Если ФС.СуществуетФайл(Путь) = 0 Тогда //#error Неверно задан путь к файлу! КонецЕсли; КолвоКартинок = КолвоКартинок + 1; Сам(Контекст).ПолучитьБазовыйКласс().ДобавитьКартинку(Путь, 1); Возврат КолвоКартинок; КонецФункции // ДобавитьКартинку ///******************************** Павел 07.12.2010 ///******************************** ADirks 03.08.2006 Процедура ДобавитьСтроку(стрДопДанные, Заголовок = "", НомерКартинки = 0) Экспорт Перем Меню; Если Заголовок = "" Тогда стрЗаголовок = стрДопДанные; Иначе стрЗаголовок = Заголовок; КонецЕсли; Меню = Сам(Контекст).ПолучитьБазовыйКласс(); Если ТипЗначения(нГруппа) = 0 Тогда Меню.ДобавитьСтроку(стрЗаголовок,,,, стрДопДанные); нМеню = нМеню + 1; Иначе Меню.ДобавитьСтроку(стрЗаголовок, нГруппа,,, стрДопДанные); КонецЕсли; Если НомерКартинки > 0 Тогда Меню.ИспользоватьКартинку("", НомерКартинки - 1); КонецЕсли; КонецПроцедуры ///******************************** ADirks 03.08.2006 ///******************************** ADirks 03.08.2006 Процедура ДобавитьРазделитель() Экспорт ДобавитьСтроку("-", ""); КонецПроцедуры ///******************************** ADirks 03.08.2006 ///******************************** Павел 08.12.2010 Процедура СделатьНедоступным(Путь = "") Экспорт Сам(Контекст).ПолучитьБазовыйКласс().СделатьНеДоступным(Путь); КонецПроцедуры // СделатьНедоступным ///******************************** Павел 08.12.2010 ///******************************** ADirks 03.08.2006 Процедура НачатьГруппу(стрЗаголовок) Экспорт Меню = Сам(Контекст).ПолучитьБазовыйКласс(); Меню.ДобавитьСтроку(стрЗаголовок); нГруппа = нМеню; КонецПроцедуры ///******************************** ADirks 03.08.2006 ///******************************** ADirks 03.08.2006 Процедура ЗавершитьГруппу() Экспорт нГруппа = ПолучитьПустоеЗначение(); нМеню = нМеню + 1; КонецПроцедуры ///******************************** ADirks 03.08.2006 ///******************************** ADirks 03.08.2006 // Предполагается что доп. данные имеют формат 'ID:<ИдентификаторТипаДействия>:<ИдентификаторОбъекта>' Функция Показать(стрЗаголовокКнопки, фМодальныйРежим) Экспорт Перем стрДопДанные; Меню = Сам(Контекст).ПолучитьБазовыйКласс(); стрДопДанные = стрЗаголовокКнопки; фИскатьКнопку = ?(стрЗаголовокКнопки = "", 0, 1); стрДействие = Меню.ОткрытьМеню(стрДопДанные, фМодальныйРежим, 0, фИскатьКнопку); Если ПустаяСтрока(стрДопДанные) = 0 Тогда Возврат стрДопДанные; Иначе Возврат СтрЗаменить(стрДействие, "&", ""); КонецЕсли; КонецФункции ///******************************** ADirks 03.08.2006 ///******************************** ADirks 03.08.2006 // Предполагается что доп. данные имеют формат 'ID:<ИдентификаторТипаДействия>:<ИдентификаторОбъекта>' Функция ПоказатьПоКоординатам(КоординатаX, КоординатаY) Экспорт Перем стрДопДанные; Меню = Сам(Контекст).ПолучитьБазовыйКласс(); стрДействие = Меню.ОткрытьМеню(стрДопДанные, 0, 0, 2, КоординатаX, КоординатаY); Если ПустаяСтрока(стрДопДанные) = 0 Тогда Возврат стрДопДанные; Иначе Возврат СтрЗаменить(стрДействие, "&", ""); КонецЕсли; КонецФункции ///******************************** ADirks 03.08.2006 |
|||
2
ADirks
11.10.12
✎
14:43
|
+ пример использования
оМеню.ДобавитьСтроку("Новый", "Новый документ (Ins)", оМеню.ДобавитьКартинку("Новый")); оМеню.ДобавитьСтроку("Изменить", "Изменить (открыть)", оМеню.ДобавитьКартинку("Изменить")); Если фДокНеСуществует = 1 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("Просмотр", "Просморт", оМеню.ДобавитьКартинку("Просмотр")); Если фДокНеСуществует = 1 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("Копировать", "Копировать документ (F9)", оМеню.ДобавитьКартинку("Копировать")); Если фДокНеСуществует = 1 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("ВводНаОсновании", "Ввести на основании (Alt+F9)", оМеню.ДобавитьКартинку("ВводНаОсновании")); Если фДокНеСуществует = 1 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("Удалить", "Пометить на удаление (Del)", оМеню.ДобавитьКартинку("Удалить")); Если фДокНеСуществует = 1 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьРазделитель(); оМеню.ДобавитьСтроку("СделатьНепроведенным", "Сделать не проведенным"); Если фДокПроведен = 0 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("ИзменитьВремя", "Изменить время документа...",); Если фДокНеСуществует + фДокПроведен > 0 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("ДвиженияДокумента", "Движения документа",); Если фДокПроведен = 0 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("ЖурналПодчиненных", "Под&чиненные документы", оМеню.ДобавитьКартинку(КаталогИБ() + "Images\подчиненные.bmp", 1)); Если фДокНеСуществует = 1 Тогда оМеню.СделатьНеДоступным(); КонецЕсли; оМеню.ДобавитьСтроку("ДеревоДокументов", "Дерево документов (только вниз)", оМеню.ДобавитьКартинку("РежимИерархии")); |
|||
3
antoneus
11.10.12
✎
15:46
|
Формекс умеет. Сервис.ВыбратьЗначение
|
|||
4
varelchik
11.10.12
✎
17:08
|
Всем спасибо уже нашел.
FormEx. картинки из 1crcrus.dll |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |