Чтение и запись.
Тип: Действие (Action).
Возвращает или задает код для выполнения, когда пользователь нажимает кнопку заголовка колонки в элементе управления СписокЭлементов (ListView).
СписокЭлементов1.КолонкаНажатие = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_КолонкаНажатие");
Копировать Выделить всёФункция ИзDecВ_Hex(Знач ЗнDec) Рез = ""; Для А = -6 По -1 Цикл Рез = Сред("0123456789ABCDEF", (ЗнDec % 16) + 1, 1) + Рез; ЗнDec = Цел(ЗнDec / 16); КонецЦикла; Возврат Рез; КонецФункции Функция ИзHexВ_RGB(Знач ЗнHex) Ж = Новый Массив; Для А = -6 По -1 Цикл Ж.Добавить(СтрНайти("0123456789ABCDEF",Сред(ЗнHex, -А, 1)) - 1); КонецЦикла; М = Новый Массив; М.Добавить((Ж[5] * 16) + Ж[4]); М.Добавить((Ж[3] * 16) + Ж[2]); М.Добавить((Ж[1] * 16) + Ж[0]); Возврат М; КонецФункции Функция РазобратьСтроку(Строка, Разделитель) Стр = СтрЗаменить(Строка,Разделитель,символы.ПС); М = Новый Массив; Если ПустаяСтрока(Стр) Тогда Возврат М; КонецЕсли; Для Ч = 1 По СтрЧислоСтрок(Стр) Цикл М.Добавить(СтрПолучитьСтроку(Стр,Ч)); КонецЦикла; Возврат М; КонецФункции Процедура СписокЭлементов1_КолонкаНажатие() Экспорт Сообщить("СписокЭлементов1_КолонкаНажатие " + ТекущаяУниверсальнаяДатаВМиллисекундах()); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Ширина = 600; Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); СписокЭлементов1 = Форма1.ЭлементыУправления.Добавить(Ф.СписокЭлементов()); СписокЭлементов1.Стыковка = Ф.СтильСтыковки.Заполнение; СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; СписокЭлементов1.АвтоУпорядочивание = Истина; // подготовим мелкие значки СписокИзображений1 = Ф.СписокИзображений(); СписокИзображений1.РазмерИзображения = Ф.Размер(16, 16); СписокЭлементов1.СписокМаленькихИзображений = СписокИзображений1; СписокЭлементов1.КолонкаНажатие = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_КолонкаНажатие"); СтрКартинка1 = "AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD"; Для А = 1 По 1365 Цикл СтрКартинка1 = СтрКартинка1 + "/"; КонецЦикла; СтрКартинка1 = СтрКартинка1 + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; СписокЭлементов1.ПриостановитьРазмещение(); Колонки1 = СписокЭлементов1.Колонки; Колонка1 = Ф.Колонка("Имя цвета", 250, Ф.ГоризонтальноеВыравнивание.Центр); Колонка1.ВыравниваниеТекста = Ф.ГоризонтальноеВыравнивание.Центр; Колонка1.Текст = "Имя цвета"; Колонка1.Ширина = Колонка1.Ширина + 10; Колонки1.Добавить(Колонка1); Колонки1.Добавить(Ф.Колонка("R", 40, 1)); Колонки1.Добавить(Ф.Колонка("G", 40, 1)); Колонки1.Добавить(Ф.Колонка("B", 40, 1)); Колонки1.Добавить(Ф.Колонка("Dec", 70, 1)); Колонки1.Добавить(Ф.Колонка("Hex", 70, 1)); М3 = РазобратьСтроку(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По М3.ВГраница() Цикл Картинка1 = Ф.Картинка(СтрКартинка1); М4 = РазобратьСтроку(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Dec = (Цв.ЗначениеКрасный * 65536) + (Цв.ЗначениеЗеленый * 256) + Цв.ЗначениеСиний; Hex = ИзDecВ_Hex(Dec); М_RGB = ИзHexВ_RGB(Hex); АтрибутыКартинки1 = Картинка1.Блокировать(); М1 = Картинка1.ПолучитьБайты(АтрибутыКартинки1); Если Картинка1.ФорматПикселей = Ф.ФорматПикселей.Бит32АКЗС Тогда А5 = 0; Пока А5 < М1.Количество Цикл М1.Установить(А5 + 0, Цв.ЗначениеСиний); М1.Установить(А5 + 1, Цв.ЗначениеЗеленый); М1.Установить(А5 + 2, Цв.ЗначениеКрасный); М1.Установить(А5 + 3, Цв.ЗначениеАльфа); А5 = А5 + 4; КонецЦикла; КонецЕсли; Картинка1.УстановитьБайты(АтрибутыКартинки1, М1); Картинка1.Разблокировать(АтрибутыКартинки1); СписокИзображений1.Изображения.Добавить(Картинка1); Элементы = СписокЭлементов1.Элементы; Элемент1 = Ф.ЭлементСпискаЭлементов(ИмяЦвета, СписокИзображений1.Изображения.Количество - 1); Элемент1.ИспользоватьСтильДляПодэлементов = Ложь; Элементы.Добавить(Элемент1); Подэлементы1 = Элемент1.Подэлементы; Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[0])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[1])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[2])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов("" + Dec)); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Hex)); КонецЦикла; СписокЭлементов1.ВозобновитьРазмещение(); Ф.ЗапуститьОбработкуСобытий();
Копировать Выделить всёФункция ИзDecВ_Hex(Знач ЗнDec) Рез = ""; Для А = -6 По -1 Цикл Рез = Сред("0123456789ABCDEF", (ЗнDec % 16) + 1, 1) + Рез; ЗнDec = Цел(ЗнDec / 16); КонецЦикла; Возврат Рез; КонецФункции Функция ИзHexВ_RGB(Знач ЗнHex) Ж = Новый Массив; Для А = -6 По -1 Цикл Ж.Добавить(СтрНайти("0123456789ABCDEF",Сред(ЗнHex, -А, 1)) - 1); КонецЦикла; М = Новый Массив; М.Добавить((Ж[5] * 16) + Ж[4]); М.Добавить((Ж[3] * 16) + Ж[2]); М.Добавить((Ж[1] * 16) + Ж[0]); Возврат М; КонецФункции Функция РазобратьСтроку(Строка, Разделитель) Стр = СтрЗаменить(Строка,Разделитель,символы.ПС); М = Новый Массив; Если ПустаяСтрока(Стр) Тогда Возврат М; КонецЕсли; Для Ч = 1 По СтрЧислоСтрок(Стр) Цикл М.Добавить(СтрПолучитьСтроку(Стр,Ч)); КонецЦикла; Возврат М; КонецФункции Процедура СписокЭлементов1_КолонкаНажатие() Экспорт Сообщить("СписокЭлементов1_КолонкаНажатие " + ТекущаяУниверсальнаяДатаВМиллисекундах()); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Ширина = 600; Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); СписокЭлементов1 = Форма1.ЭлементыУправления.Добавить(Ф.СписокЭлементов()); СписокЭлементов1.Стыковка = Ф.СтильСтыковки.Заполнение; СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; СписокЭлементов1.АвтоУпорядочивание = Истина; // подготовим мелкие значки СписокИзображений1 = Ф.СписокИзображений(); СписокИзображений1.РазмерИзображения = Ф.Размер(16, 16); СписокЭлементов1.СписокМаленькихИзображений = СписокИзображений1; СписокЭлементов1.КолонкаНажатие = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_КолонкаНажатие"); СтрКартинка1 = "AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD"; Для А = 1 По 1365 Цикл СтрКартинка1 = СтрКартинка1 + "/"; КонецЦикла; СтрКартинка1 = СтрКартинка1 + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; СписокЭлементов1.ПриостановитьРазмещение(); Колонки1 = СписокЭлементов1.Колонки; Колонка1 = Ф.Колонка("Имя цвета", 250, Ф.ГоризонтальноеВыравнивание.Центр); Колонка1.ВыравниваниеТекста = Ф.ГоризонтальноеВыравнивание.Центр; Колонка1.Текст = "Имя цвета"; Колонка1.Ширина = Колонка1.Ширина + 10; Колонки1.Добавить(Колонка1); Колонки1.Добавить(Ф.Колонка("R", 40, 1)); Колонки1.Добавить(Ф.Колонка("G", 40, 1)); Колонки1.Добавить(Ф.Колонка("B", 40, 1)); Колонки1.Добавить(Ф.Колонка("Dec", 70, 1)); Колонки1.Добавить(Ф.Колонка("Hex", 70, 1)); М3 = РазобратьСтроку(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По М3.ВГраница() Цикл Картинка1 = Ф.Картинка(СтрКартинка1); М4 = РазобратьСтроку(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Dec = (Цв.ЗначениеКрасный * 65536) + (Цв.ЗначениеЗеленый * 256) + Цв.ЗначениеСиний; Hex = ИзDecВ_Hex(Dec); М_RGB = ИзHexВ_RGB(Hex); АтрибутыКартинки1 = Картинка1.Блокировать(); М1 = Картинка1.ПолучитьБайты(АтрибутыКартинки1); Если Картинка1.ФорматПикселей = Ф.ФорматПикселей.Бит32АКЗС Тогда А5 = 0; Пока А5 < М1.Количество Цикл М1.Установить(А5 + 0, Цв.ЗначениеСиний); М1.Установить(А5 + 1, Цв.ЗначениеЗеленый); М1.Установить(А5 + 2, Цв.ЗначениеКрасный); М1.Установить(А5 + 3, Цв.ЗначениеАльфа); А5 = А5 + 4; КонецЦикла; КонецЕсли; Картинка1.УстановитьБайты(АтрибутыКартинки1, М1); Картинка1.Разблокировать(АтрибутыКартинки1); СписокИзображений1.Изображения.Добавить(Картинка1); Элементы = СписокЭлементов1.Элементы; Элемент1 = Ф.ЭлементСпискаЭлементов(ИмяЦвета, СписокИзображений1.Изображения.Количество - 1); Элемент1.ИспользоватьСтильДляПодэлементов = Ложь; Элементы.Добавить(Элемент1); Подэлементы1 = Элемент1.Подэлементы; Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[0])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[1])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[2])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов("" + Dec)); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Hex)); КонецЦикла; СписокЭлементов1.ВозобновитьРазмещение(); Сообщить(?( СписокЭлементов1.КолонкаНажатие.ИмяМетода = "СписокЭлементов1_КолонкаНажатие" , "", "!!! ") + "СписокЭлементов.КолонкаНажатие (ListView.ColumnClick) Свойство" + " " + ТекущаяДата());
СписокЭлементов (ListView) Класс | Библиотека OneScriptForms