Имя: Пароль:
1C
1C 7.7
v7: Формекс и список значений
0 ildary
 
09.12.13
10:09
Уважаемые специалисты, скажите пожалуйста, возможно ли раскрашивать строки списка значений таким же образом, как в ТЗ? Например выделить цветом фона по содержанию строки? Если нет, то какие еще компоненты позволяют сделать подобное?
1 Ёпрст
 
гуру
09.12.13
10:10
активикс от мелкомягких умеет
2 ildary
 
09.12.13
10:14
(1) можно пару ключевых слов для примера?
3 Chum
 
09.12.13
10:22
4 ildary
 
09.12.13
10:24
(3) прошу уточнить - команды в (3) - относятся к конкретной строке или ко всему списку сразу?
5 Chum
 
09.12.13
10:26
Там же пример есть:

Раскраска = "FONT[" + ПолучитьЦвет(0,0,0) + "]" +
                "BRUSH[" + ПолучитьЦвет(100,255,100) + "]" +
                "FONTSET[" + глШрифт2 + "]"+
                "FONTSET_S[" + глШрифт1 + "]"+
                "BRUSH_S["+ПолучитьЦвет(0,100,100)+"]";

Список.ДобавитьЗначение(зн, ""+зн+РазделительСтрок+Раскраска);

ДобавитьЗначение - добавление конкретной строки
6 ildary
 
09.12.13
10:40
(5) спасибо, а есть какие-то подволные камни при этом? все сделал по хелпу, но в списке выводится текст раскраски "BRUSH[ДлинноеЧисло]" вместо подсветки.
Вот код:
    глСервисФормекс.ПерехватОтрисовкиСписков( 1 );
    спс = СоздатьОбъект( "СписокЗначений" );
    
    спс.ДобавитьЗначение( 1, "BRUSH[" + глЦвет( 220, 180, 180 ) + "]1" );
    
    Действие = 0;
    Если спс.ВыбратьЗначение( спс, Действие,, 120, 0 ) <> 1 Тогда        
        
        Возврат;
        
    КонецЕсли;

вместо спс.ВыбратьЗначение пробовал глСервисФормекс.ВыбратьЗначение - не работают оба
7 Ёпрст
 
гуру
09.12.13
10:42
(6) она работает только для "выпадающего поля со списком"
Т.е СЗ должен быть элементом формы.
8 ildary
 
09.12.13
10:43
(7) т.е. для других вариантов - иикак?
9 Ёпрст
 
гуру
09.12.13
10:49
(8) неа
10 Ёпрст
 
гуру
09.12.13
10:50
тебе же в виде меню надо ?
11 Ёпрст
 
гуру
09.12.13
10:50
на дюнаврап на 1cpp валялось удачное решение..
12 ildary
 
09.12.13
10:56
(10) да, мне в виде меню, желательно как ВыбратьЗначение( ,,, 1), а можно ссылку на дюнаварп-решение?
13 Ёпрст
 
гуру
09.12.13
11:07
Надо поискать, сам класс с примером валяется..
14 Ёпрст
 
гуру
09.12.13
11:08
15 Ёпрст
 
гуру
09.12.13
11:10
Вроде оно, в крайнем случае, тряси chessman - сделает любую хотелку-свистелку..
16 ildary
 
09.12.13
12:07
Можно еще вдогонку потревожить специалиста - Когда в форме списка справочника обрабатываем правую кнопку мыши, не происходит активация строки, по которой счелкаем мышккой, то есть приходится делать так - сначала левой кнопкой счелкаем по строке, а потом правой - вызывать свою менюшку. Есть ли способ в ПриНажатииПравойКнопки - активировать строку многострочной части, на которой счелкнули?
17 Ёпрст
 
гуру
09.12.13
12:17
(16) не помню, было где-то красивое решение.
Самое простое, что приходит - получить атрибут по координатам, посмотреть значение и активизироватьОбъект
18 Ёпрст
 
гуру
09.12.13
12:20
И это, у чессмана было решение - в стандартное меню добавлять своё по ПКМ
19 Ёпрст
 
гуру
09.12.13
12:21
там всё работало.
20 Ёпрст
 
гуру
09.12.13
12:21
да и можешь не в ПриНажатииПравойКнопки  а в ПриОтжатииПравойКнопки использовать
21 Ёпрст
 
гуру
09.12.13
12:22
и там в одной из них фсо в 0 затачивать под своё меню, тогда фокус сам переместится на нужную строку в форме списка.
22 ildary
 
09.12.13
12:25
А как поможет АктивизироватьОбъект, если в этот момент нужный объект еще не выбран? Мы же счелкаем не по одиночному элементу форму, а по списку?
23 Ёпрст
 
гуру
09.12.13
12:29
(22) дык он и выберется..
24 Ёпрст
 
гуру
09.12.13
12:29
а так, см. (20)
25 Ёпрст
 
гуру
09.12.13
12:30
ты за счет фсо=0 в ПриНажатии, тупо фактически отменяешь клик мыши в форме списка - вот и нет позиционирования.
Используя ПриОтжатии.. позиционирование ужо есть.. его и пользуй.
26 ildary
 
09.12.13
12:38
(25) Извини, не понял, если в ПриНажатии я отменил клик, то как этот клик сработает в ПриОтжатии? Попробовал в ПриОтжатии вставлять код Конт.Активизировать( "МногострочнаяЧасть", 0 );
- не помогло.
27 ildary
 
09.12.13
12:40
+(26) убрал в ПриНажатии() ФСО = 0; - и все заверте!!! Спасибо огромное!!!
28 Ёпрст
 
гуру
09.12.13
12:40
(26) :)
замени ПриНажатии на ПриОтжатии .. и усё.
29 ildary
 
09.12.13
12:43
(28) прошу прощения, только теперь дошло, что ПриНажатии() в моем случае совсем не нужен.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший