СписокЭлементов()
Тип: СписокЭлементов (ListView).
Создаёт новый экземпляр класса СписокЭлементов (ListView).
СписокЭлементов1 = Ф.СписокЭлементов();
Копировать Выделить всёПерем Ф, СписокЭлементов1, Кнопка9, ЧемЗаполнено, Кнопка16, Кнопка17; Функция Из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 По СтрЧислоСтрок(Стр) Цикл М.Добавить(СтрПолучитьСтроку(Стр,Ч)); КонецЦикла; Возврат М; КонецФункции Функция Кнопка7_Нажатие() Экспорт СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; ЗаполнитьЦветами(); КонецФункции Функция ЗаполнитьЦветами() СписокЭлементов1.ПриостановитьРазмещение(); Если СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.МаленькийЗначок Тогда СписокЭлементов1.Колонки.Очистить(); СписокЭлементов1.Элементы.Очистить(); Элементы = СписокЭлементов1.Элементы; М3 = РазобратьСтроку(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По М3.ВГраница() Цикл М4 = РазобратьСтроку(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Элементы.Добавить(Ф.ЭлементСпискаЭлементов(ИмяЦвета)); КонецЦикла; Иначе СписокЭлементов1.Колонки.Очистить(); СписокЭлементов1.Элементы.Очистить(); Колонки1 = СписокЭлементов1.Колонки; Колонка1 = Ф.Колонка("Имя цвета", 250, Ф.ГоризонтальноеВыравнивание.Центр); Колонка1.ТипСортировки = Ф.ТипСортировки.Текст; Колонки1.Добавить(Колонка1); Колонка2 = Ф.Колонка("R", 40, 1); Колонка2.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка2); Колонка3 = Ф.Колонка("G", 40, 1); Колонка3.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка3); Колонка4 = Ф.Колонка("B", 40, 1); Колонка4.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка4); Колонка5 = Ф.Колонка("Dec", 70, 1); Колонка5.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка5); Колонка6 = Ф.Колонка("Hex", 70, 1); Колонка6.ТипСортировки = Ф.ТипСортировки.Текст; Колонки1.Добавить(Колонка6); Колонки1.Добавить(Ф.Колонка("Цвет", 50, 2)); М3 = РазобратьСтроку(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По М3.ВГраница() Цикл М4 = РазобратьСтроку(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Dec = (Цв.ЗначениеКрасный * 65536) + (Цв.ЗначениеЗеленый * 256) + Цв.ЗначениеСиний; Hex = ИзDecВ_Hex(Dec); М_RGB = ИзHexВ_RGB(Hex); Элементы = СписокЭлементов1.Элементы; Элемент1 = Ф.ЭлементСпискаЭлементов(ИмяЦвета, 1); Элемент1.ИспользоватьСтильДляПодэлементов = Ложь; Элементы.Добавить(Элемент1); Подэлементы1 = Элемент1.Подэлементы; Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[0])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[1])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[2])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов("" + Dec)); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Hex)); ЦветнойПодэлемент = Ф.ПодэлементСпискаЭлементов(); ЦветнойПодэлемент.ЦветФона = Цв; Подэлементы1.Добавить(ЦветнойПодэлемент); КонецЦикла; КонецЕсли; ЧемЗаполнено = "Цвета"; Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция Значки_imageres_dll() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.Колонки.Очистить(); СписокЭлементов1.Элементы.Очистить(); СписокЭлементов1.Колонки.Добавить(Ф.Колонка("Номер", 70, Ф.ГоризонтальноеВыравнивание.Лево)); Элементы = СписокЭлементов1.Элементы; Для А = 0 По СписокЭлементов1.СписокМаленькихИзображений.Изображения.Количество - 1 Цикл Элементы.Добавить(Ф.ЭлементСпискаЭлементов("" + (А + 1), А)); КонецЦикла; ЧемЗаполнено = "Значки_imageres_dll"; Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция Последняя() Экспорт Если Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)" Тогда СписокЭлементов1.Колонки.Добавить(Ф.Колонка("Последняя", 70, Ф.ГоризонтальноеВыравнивание.Лево)); Кнопка9.Текст = "Удалить последнюю колонку"; Иначе СписокЭлементов1.Колонки.УдалитьПоИндексу(СписокЭлементов1.Колонки.Количество -1); Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; КонецЕсли; КонецФункции Функция СообщитьВыделенное() Экспорт ВыбранныеЭлементы1 = СписокЭлементов1.ВыбранныеЭлементы; Колич = ВыбранныеЭлементы1.Количество; Если Колич > 0 Тогда Стр = ""; Для А = 0 По Колич - 1 Цикл Эл = ВыбранныеЭлементы1.Элемент(А); Подэлементы = Эл.Подэлементы; Колич2 = СписокЭлементов1.Колонки.Количество; Для А2 = 0 По Колич2 - 1 Цикл Стр = Стр + " - " + Эл.Подэлементы.Элемент(А2).Текст; КонецЦикла; Стр = Стр + Символы.ПС; КонецЦикла; ОкноСообщений1 = Ф.ОкноСообщений(); ОкноСообщений1.Заголовок = "Выделенное"; ОкноСообщений1.Текст = Стр; ОкноСообщений1.Показать(); КонецЕсли; СписокЭлементов1.Фокус(); КонецФункции Функция СообщитьФокус() Экспорт СфокусированныйЭлемент1 = СписокЭлементов1.СфокусированныйЭлемент; Если СфокусированныйЭлемент1 = Неопределено Тогда Ф.ОкноСообщений().Показать("В фокусе: ничего нет"); Иначе Подэлементы = СфокусированныйЭлемент1.Подэлементы; Колич2 = СписокЭлементов1.Колонки.Количество; Стр = ""; Для А2 = 0 По Колич2 - 1 Цикл Стр = Стр + Подэлементы.Элемент(А2).Текст; КонецЦикла; Ф.ОкноСообщений().Показать("В фокусе: " + Стр, "В фокусе"); КонецЕсли; СписокЭлементов1.Фокус(); КонецФункции Функция ОтображениеКрупныеЗначки() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.БольшойЗначок; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция ОтображениеТаблица() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция ОтображениеМелкиеЗначки() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.МаленькийЗначок; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция ОтображениеСписок() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Список; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция СеткаДляТаблица() Экспорт Если СписокЭлементов1.Сетка Тогда СписокЭлементов1.Сетка = Ложь; Кнопка16.Текст = "Сетка" + Символы.ПС + "(для Таблицы)"; Иначе СписокЭлементов1.Сетка = Истина; Кнопка16.Текст = "Без сетки" + Символы.ПС + "(для Таблицы)"; КонецЕсли; КонецФункции Функция Кнопка17_Нажатие() Экспорт Если СписокЭлементов1.Флажки Тогда СписокЭлементов1.Флажки = Ложь; Кнопка17.Текст = "С пометками"; Иначе СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.Флажки = Истина; СписокЭлементов1.ВозобновитьРазмещение(); Кнопка17.Текст = "Без пометок"; КонецЕсли; КонецФункции Функция Кнопка18_Нажатие() Экспорт Помеченные1 = СписокЭлементов1.ПомеченныеЭлементы; Колич = Помеченные1.Количество; Если Колич > 0 Тогда Стр = ""; Для А = 0 По Колич - 1 Цикл Эл = Помеченные1.Элемент(А); Подэлементы = Эл.Подэлементы; Колич2 = СписокЭлементов1.Колонки.Количество; Для А2 = 0 По Колич2 - 1 Цикл Стр = Стр + " - " + Эл.Подэлементы.Элемент(А2).Текст; КонецЦикла; Стр = Стр + Символы.ПС; КонецЦикла; ОкноСообщений1 = Ф.ОкноСообщений(); ОкноСообщений1.Заголовок = "Помеченные"; ОкноСообщений1.Текст = Стр; ОкноСообщений1.Показать(); КонецЕсли; СписокЭлементов1.Фокус(); КонецФункции Процедура СписокЭлементов1_ИндексВыбранногоИзменен() Экспорт КонецПроцедуры Процедура СписокЭлементов1_КолонкаНажатие() Экспорт КонецПроцедуры Процедура СписокЭлементов1_ПриАктивизацииЭлемента() Экспорт КонецПроцедуры Процедура СписокЭлементов1_ЭлементПомечен() Экспорт // Аргументы1 = Ф.ЭлементПомеченАрг(); // Сообщить("Аргументы1.Индекс = " + Аргументы1.Индекс); // Сообщить("Аргументы1.НовоеЗначение = " + Аргументы1.НовоеЗначение); // Сообщить("Аргументы1.ТекущееЗначение = " + Аргументы1.ТекущееЗначение); // Сообщить("============================"); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Ширина = 900; Форма1.Высота = 400; Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); СписокЭлементов1 = Форма1.ЭлементыУправления.Добавить(Ф.СписокЭлементов()); СписокЭлементов1.ЭлементПомечен = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_ЭлементПомечен"); СписокЭлементов1.АвтоУпорядочивание = Истина; СписокЭлементов1.ПолныйВыборСтроки = Истина; СписокЭлементов1.ВыборПриНаведении = Ложь; СписокЭлементов1.ИндексВыбранногоИзменен = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_ИндексВыбранногоИзменен"); СписокЭлементов1.КолонкаНажатие = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_КолонкаНажатие"); СписокЭлементов1.ПриАктивизацииЭлемента = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_ПриАктивизацииЭлемента"); СписокЭлементов1.Стыковка = Ф.СтильСтыковки.Лево; СписокЭлементов1.Ширина = Форма1.КлиентШирина - 260; СписокЭлементов1.МножественныйВыбор = Истина; СписокЭлементов1.РедактированиеНадписи = Истина; СписокЭлементов1.Прокручиваемый = Истина; СписокЭлементов1.Активация = Ф.АктивацияЭлемента.Стандартная; СписокЭлементов1.ПереносНадписи = Истина; СписокЭлементов1.РазрешитьПеретаскиваниеКолонок = Истина; СписокЭлементов1.СтильГраницы = Ф.СтильГраницы.Трехмерная; Кнопка7 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка7.Текст = "Цвета"; Кнопка7.Лево = СписокЭлементов1.Лево + СписокЭлементов1.Ширина + 5; Кнопка7.Верх = СписокЭлементов1.Верх + 5; Кнопка7.Ширина = 122; Кнопка7.Высота = 53; Кнопка7.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка7_Нажатие"); Кнопка8 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка8.Текст = "Значки imageres.dll"; Кнопка8.Лево = Кнопка7.Лево; Кнопка8.Верх = Кнопка7.Низ + 5; Кнопка8.Ширина = Кнопка7.Ширина; Кнопка8.Высота = Кнопка7.Высота; Кнопка8.Нажатие = Ф.Действие(ЭтотОбъект, "Значки_imageres_dll"); Кнопка9 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; Кнопка9.Лево = Кнопка8.Лево; Кнопка9.Верх = Кнопка8.Низ + 5; Кнопка9.Ширина = Кнопка8.Ширина; Кнопка9.Высота = Кнопка7.Высота; Кнопка9.Нажатие = Ф.Действие(ЭтотОбъект, "Последняя"); Кнопка10 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка10.Текст = "Сообщить выделенное"; Кнопка10.Лево = Кнопка9.Лево; Кнопка10.Верх = Кнопка9.Низ + 5; Кнопка10.Ширина = Кнопка9.Ширина; Кнопка10.Высота = Кнопка7.Высота; Кнопка10.Нажатие = Ф.Действие(ЭтотОбъект, "СообщитьВыделенное"); Кнопка11 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка11.Текст = "Сообщить фокус"; Кнопка11.Лево = Кнопка10.Лево; Кнопка11.Верх = Кнопка10.Низ + 5; Кнопка11.Ширина = Кнопка10.Ширина; Кнопка11.Высота = Кнопка7.Высота; Кнопка11.Нажатие = Ф.Действие(ЭтотОбъект, "СообщитьФокус"); Кнопка12 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка12.Текст = "Отображение КрупныеЗначки"; Кнопка12.Лево = Кнопка11.Лево; Кнопка12.Верх = Кнопка11.Низ + 5; Кнопка12.Ширина = Кнопка11.Ширина; Кнопка12.Высота = Кнопка7.Высота; Кнопка12.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеКрупныеЗначки"); Кнопка13 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка13.Текст = "Отображение Таблица"; Кнопка13.Лево = Кнопка7.Право + 5; Кнопка13.Верх = Кнопка7.Верх; Кнопка13.Ширина = Кнопка7.Ширина; Кнопка13.Высота = Кнопка7.Высота; Кнопка13.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеТаблица"); Кнопка14 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка14.Текст = "Отображение МелкиеЗначки"; Кнопка14.Лево = Кнопка13.Лево; Кнопка14.Верх = Кнопка13.Низ + 5; Кнопка14.Ширина = Кнопка13.Ширина; Кнопка14.Высота = Кнопка7.Высота; Кнопка14.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеМелкиеЗначки"); Кнопка15 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка15.Текст = "Отображение Список"; Кнопка15.Лево = Кнопка14.Лево; Кнопка15.Верх = Кнопка14.Низ + 5; Кнопка15.Ширина = Кнопка14.Ширина; Кнопка15.Высота = Кнопка7.Высота; Кнопка15.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеСписок"); Кнопка16 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка16.Текст = "Сетка" + Символы.ПС + "(для Таблицы)"; Кнопка16.Лево = Кнопка15.Лево; Кнопка16.Верх = Кнопка15.Низ + 5; Кнопка16.Ширина = Кнопка15.Ширина; Кнопка16.Высота = Кнопка7.Высота; Кнопка16.Нажатие = Ф.Действие(ЭтотОбъект, "СеткаДляТаблица"); Кнопка17 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка17.Текст = "С пометками"; Кнопка17.Лево = Кнопка16.Лево; Кнопка17.Верх = Кнопка16.Низ + 5; Кнопка17.Ширина = Кнопка16.Ширина; Кнопка17.Высота = Кнопка7.Высота; Кнопка17.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка17_Нажатие"); Кнопка18 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка18.Текст = "Помеченные"; Кнопка18.Лево = Кнопка17.Лево; Кнопка18.Верх = Кнопка17.Низ + 5; Кнопка18.Ширина = Кнопка17.Ширина; Кнопка18.Высота = Кнопка7.Высота; Кнопка18.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка18_Нажатие"); // подготовим мелкие значки СписокИзображенийМелкие = Ф.СписокИзображений(); СписокИзображенийМелкие.РазмерИзображения = Ф.Размер(16, 16); Для А = 1 По 500 Цикл Попытка ЗначокИзДЛЛ = Ф.Значок("C:\Windows\System32\imageres.dll", А); РисунокИзЗначка = ЗначокИзДЛЛ.ВКартинку(); СписокИзображенийМелкие.Изображения.Добавить(РисунокИзЗначка); Исключение КонецПопытки; КонецЦикла; СписокЭлементов1.СписокМаленькихИзображений = СписокИзображенийМелкие; // подготовим крупные значки СписокИзображенийБольшие = Ф.СписокИзображений(); СписокИзображенийБольшие.РазмерИзображения = Ф.Размер(48, 48); Для А = 0 По СписокИзображенийМелкие.Изображения.Количество - 1 Цикл Попытка Картинка = СписокИзображенийМелкие.Изображения.Элемент(А); СписокИзображенийБольшие.Изображения.Добавить(Картинка); Исключение КонецПопытки; КонецЦикла; СписокЭлементов1.СписокБольшихИзображений = СписокИзображенийБольшие; СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; ЗаполнитьЦветами(); СписокЭлементов1.Сортировать(СписокЭлементов1.Колонки.Элемент(0), Ф.ПорядокСортировки.ПоВозрастанию); Если СписокЭлементов1.КолонкаСортировки = Неопределено Тогда Сообщить("КолонкаСортировки не назначена"); Иначе Сообщить("СписокЭлементов1.КолонкаСортировки = " + СписокЭлементов1.КолонкаСортировки.Текст); СписокЭлементов1.Сортировать(СписокЭлементов1.КолонкаСортировки, Ф.ПорядокСортировки.ПоВозрастанию); КонецЕсли; Ф.ЗапуститьОбработкуСобытий();
Копировать Выделить всёПерем Ф, СписокЭлементов1, Кнопка9, ЧемЗаполнено, Кнопка16, Кнопка17; Функция Из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 По СтрЧислоСтрок(Стр) Цикл М.Добавить(СтрПолучитьСтроку(Стр,Ч)); КонецЦикла; Возврат М; КонецФункции Функция Кнопка7_Нажатие() Экспорт СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; ЗаполнитьЦветами(); КонецФункции Функция ЗаполнитьЦветами() СписокЭлементов1.ПриостановитьРазмещение(); Если СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.МаленькийЗначок Тогда СписокЭлементов1.Колонки.Очистить(); СписокЭлементов1.Элементы.Очистить(); Элементы = СписокЭлементов1.Элементы; М3 = РазобратьСтроку(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По М3.ВГраница() Цикл М4 = РазобратьСтроку(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Элементы.Добавить(Ф.ЭлементСпискаЭлементов(ИмяЦвета)); КонецЦикла; Иначе СписокЭлементов1.Колонки.Очистить(); СписокЭлементов1.Элементы.Очистить(); Колонки1 = СписокЭлементов1.Колонки; Колонка1 = Ф.Колонка("Имя цвета", 250, Ф.ГоризонтальноеВыравнивание.Центр); Колонка1.ТипСортировки = Ф.ТипСортировки.Текст; Колонки1.Добавить(Колонка1); Колонка2 = Ф.Колонка("R", 40, 1); Колонка2.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка2); Колонка3 = Ф.Колонка("G", 40, 1); Колонка3.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка3); Колонка4 = Ф.Колонка("B", 40, 1); Колонка4.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка4); Колонка5 = Ф.Колонка("Dec", 70, 1); Колонка5.ТипСортировки = Ф.ТипСортировки.Число; Колонки1.Добавить(Колонка5); Колонка6 = Ф.Колонка("Hex", 70, 1); Колонка6.ТипСортировки = Ф.ТипСортировки.Текст; Колонки1.Добавить(Колонка6); Колонки1.Добавить(Ф.Колонка("Цвет", 50, 2)); М3 = РазобратьСтроку(Ф.СвойстваОбъекта(Ф.Цвет()), Символы.ПС); Для А = 0 По М3.ВГраница() Цикл М4 = РазобратьСтроку(М3[А], " "); ИмяЦвета = М4[0]; Попытка Цв = Ф.Цвет().ИзИмени(ИмяЦвета); Исключение Продолжить; КонецПопытки; Dec = (Цв.ЗначениеКрасный * 65536) + (Цв.ЗначениеЗеленый * 256) + Цв.ЗначениеСиний; Hex = ИзDecВ_Hex(Dec); М_RGB = ИзHexВ_RGB(Hex); Элементы = СписокЭлементов1.Элементы; Элемент1 = Ф.ЭлементСпискаЭлементов(ИмяЦвета, 1); Элемент1.ИспользоватьСтильДляПодэлементов = Ложь; Элементы.Добавить(Элемент1); Подэлементы1 = Элемент1.Подэлементы; Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[0])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[1])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(М_RGB[2])); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов("" + Dec)); Подэлементы1.Добавить(Ф.ПодэлементСпискаЭлементов(Hex)); ЦветнойПодэлемент = Ф.ПодэлементСпискаЭлементов(); ЦветнойПодэлемент.ЦветФона = Цв; Подэлементы1.Добавить(ЦветнойПодэлемент); КонецЦикла; КонецЕсли; ЧемЗаполнено = "Цвета"; Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция Значки_imageres_dll() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.Колонки.Очистить(); СписокЭлементов1.Элементы.Очистить(); СписокЭлементов1.Колонки.Добавить(Ф.Колонка("Номер", 70, Ф.ГоризонтальноеВыравнивание.Лево)); Элементы = СписокЭлементов1.Элементы; Для А = 0 По СписокЭлементов1.СписокМаленькихИзображений.Изображения.Количество - 1 Цикл Элементы.Добавить(Ф.ЭлементСпискаЭлементов("" + (А + 1), А)); КонецЦикла; ЧемЗаполнено = "Значки_imageres_dll"; Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция Последняя() Экспорт Если Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)" Тогда СписокЭлементов1.Колонки.Добавить(Ф.Колонка("Последняя", 70, Ф.ГоризонтальноеВыравнивание.Лево)); Кнопка9.Текст = "Удалить последнюю колонку"; Иначе СписокЭлементов1.Колонки.УдалитьПоИндексу(СписокЭлементов1.Колонки.Количество -1); Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; КонецЕсли; КонецФункции Функция СообщитьВыделенное() Экспорт ВыбранныеЭлементы1 = СписокЭлементов1.ВыбранныеЭлементы; Колич = ВыбранныеЭлементы1.Количество; Если Колич > 0 Тогда Стр = ""; Для А = 0 По Колич - 1 Цикл Эл = ВыбранныеЭлементы1.Элемент(А); Подэлементы = Эл.Подэлементы; Колич2 = СписокЭлементов1.Колонки.Количество; Для А2 = 0 По Колич2 - 1 Цикл Стр = Стр + " - " + Эл.Подэлементы.Элемент(А2).Текст; КонецЦикла; Стр = Стр + Символы.ПС; КонецЦикла; ОкноСообщений1 = Ф.ОкноСообщений(); ОкноСообщений1.Заголовок = "Выделенное"; ОкноСообщений1.Текст = Стр; ОкноСообщений1.Показать(); КонецЕсли; СписокЭлементов1.Фокус(); КонецФункции Функция СообщитьФокус() Экспорт СфокусированныйЭлемент1 = СписокЭлементов1.СфокусированныйЭлемент; Если СфокусированныйЭлемент1 = Неопределено Тогда Ф.ОкноСообщений().Показать("В фокусе: ничего нет"); Иначе Подэлементы = СфокусированныйЭлемент1.Подэлементы; Колич2 = СписокЭлементов1.Колонки.Количество; Стр = ""; Для А2 = 0 По Колич2 - 1 Цикл Стр = Стр + Подэлементы.Элемент(А2).Текст; КонецЦикла; Ф.ОкноСообщений().Показать("В фокусе: " + Стр, "В фокусе"); КонецЕсли; СписокЭлементов1.Фокус(); КонецФункции Функция ОтображениеКрупныеЗначки() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.БольшойЗначок; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция ОтображениеТаблица() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция ОтображениеМелкиеЗначки() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.МаленькийЗначок; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция ОтображениеСписок() Экспорт СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Список; СписокЭлементов1.ВозобновитьРазмещение(); КонецФункции Функция СеткаДляТаблица() Экспорт Если СписокЭлементов1.Сетка Тогда СписокЭлементов1.Сетка = Ложь; Кнопка16.Текст = "Сетка" + Символы.ПС + "(для Таблицы)"; Иначе СписокЭлементов1.Сетка = Истина; Кнопка16.Текст = "Без сетки" + Символы.ПС + "(для Таблицы)"; КонецЕсли; КонецФункции Функция Кнопка17_Нажатие() Экспорт Если СписокЭлементов1.Флажки Тогда СписокЭлементов1.Флажки = Ложь; Кнопка17.Текст = "С пометками"; Иначе СписокЭлементов1.ПриостановитьРазмещение(); СписокЭлементов1.Флажки = Истина; СписокЭлементов1.ВозобновитьРазмещение(); Кнопка17.Текст = "Без пометок"; КонецЕсли; КонецФункции Функция Кнопка18_Нажатие() Экспорт Помеченные1 = СписокЭлементов1.ПомеченныеЭлементы; Колич = Помеченные1.Количество; Если Колич > 0 Тогда Стр = ""; Для А = 0 По Колич - 1 Цикл Эл = Помеченные1.Элемент(А); Подэлементы = Эл.Подэлементы; Колич2 = СписокЭлементов1.Колонки.Количество; Для А2 = 0 По Колич2 - 1 Цикл Стр = Стр + " - " + Эл.Подэлементы.Элемент(А2).Текст; КонецЦикла; Стр = Стр + Символы.ПС; КонецЦикла; ОкноСообщений1 = Ф.ОкноСообщений(); ОкноСообщений1.Заголовок = "Помеченные"; ОкноСообщений1.Текст = Стр; ОкноСообщений1.Показать(); КонецЕсли; СписокЭлементов1.Фокус(); КонецФункции Процедура СписокЭлементов1_ИндексВыбранногоИзменен() Экспорт КонецПроцедуры Процедура СписокЭлементов1_КолонкаНажатие() Экспорт КонецПроцедуры Процедура СписокЭлементов1_ПриАктивизацииЭлемента() Экспорт КонецПроцедуры Процедура СписокЭлементов1_ЭлементПомечен() Экспорт // Аргументы1 = Ф.ЭлементПомеченАрг(); // Сообщить("Аргументы1.Индекс = " + Аргументы1.Индекс); // Сообщить("Аргументы1.НовоеЗначение = " + Аргументы1.НовоеЗначение); // Сообщить("Аргументы1.ТекущееЗначение = " + Аргументы1.ТекущееЗначение); // Сообщить("============================"); КонецПроцедуры ПодключитьВнешнююКомпоненту("C:\444\111\OneScriptForms\OneScriptForms\bin\Debug\OneScriptForms.dll"); Ф = Новый ФормыДляОдноСкрипта(); Форма1 = Ф.Форма(); Форма1.Ширина = 900; Форма1.Высота = 400; Форма1.Отображать = Истина; Форма1.Показать(); Форма1.Активизировать(); СписокЭлементов1 = Форма1.ЭлементыУправления.Добавить(Ф.СписокЭлементов()); СписокЭлементов1.ЭлементПомечен = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_ЭлементПомечен"); СписокЭлементов1.АвтоУпорядочивание = Истина; СписокЭлементов1.ПолныйВыборСтроки = Истина; СписокЭлементов1.ВыборПриНаведении = Ложь; СписокЭлементов1.ИндексВыбранногоИзменен = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_ИндексВыбранногоИзменен"); СписокЭлементов1.КолонкаНажатие = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_КолонкаНажатие"); СписокЭлементов1.ПриАктивизацииЭлемента = Ф.Действие(ЭтотОбъект, "СписокЭлементов1_ПриАктивизацииЭлемента"); СписокЭлементов1.Стыковка = Ф.СтильСтыковки.Лево; СписокЭлементов1.Ширина = Форма1.КлиентШирина - 260; СписокЭлементов1.МножественныйВыбор = Истина; СписокЭлементов1.РедактированиеНадписи = Истина; СписокЭлементов1.Прокручиваемый = Истина; СписокЭлементов1.Активация = Ф.АктивацияЭлемента.Стандартная; СписокЭлементов1.ПереносНадписи = Истина; СписокЭлементов1.РазрешитьПеретаскиваниеКолонок = Истина; СписокЭлементов1.СтильГраницы = Ф.СтильГраницы.Трехмерная; Кнопка7 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка7.Текст = "Цвета"; Кнопка7.Лево = СписокЭлементов1.Лево + СписокЭлементов1.Ширина + 5; Кнопка7.Верх = СписокЭлементов1.Верх + 5; Кнопка7.Ширина = 122; Кнопка7.Высота = 53; Кнопка7.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка7_Нажатие"); Кнопка8 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка8.Текст = "Значки imageres.dll"; Кнопка8.Лево = Кнопка7.Лево; Кнопка8.Верх = Кнопка7.Низ + 5; Кнопка8.Ширина = Кнопка7.Ширина; Кнопка8.Высота = Кнопка7.Высота; Кнопка8.Нажатие = Ф.Действие(ЭтотОбъект, "Значки_imageres_dll"); Кнопка9 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка9.Текст = "Добавить колонку" + Символы.ПС + "(для Таблицы)"; Кнопка9.Лево = Кнопка8.Лево; Кнопка9.Верх = Кнопка8.Низ + 5; Кнопка9.Ширина = Кнопка8.Ширина; Кнопка9.Высота = Кнопка7.Высота; Кнопка9.Нажатие = Ф.Действие(ЭтотОбъект, "Последняя"); Кнопка10 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка10.Текст = "Сообщить выделенное"; Кнопка10.Лево = Кнопка9.Лево; Кнопка10.Верх = Кнопка9.Низ + 5; Кнопка10.Ширина = Кнопка9.Ширина; Кнопка10.Высота = Кнопка7.Высота; Кнопка10.Нажатие = Ф.Действие(ЭтотОбъект, "СообщитьВыделенное"); Кнопка11 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка11.Текст = "Сообщить фокус"; Кнопка11.Лево = Кнопка10.Лево; Кнопка11.Верх = Кнопка10.Низ + 5; Кнопка11.Ширина = Кнопка10.Ширина; Кнопка11.Высота = Кнопка7.Высота; Кнопка11.Нажатие = Ф.Действие(ЭтотОбъект, "СообщитьФокус"); Кнопка12 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка12.Текст = "Отображение КрупныеЗначки"; Кнопка12.Лево = Кнопка11.Лево; Кнопка12.Верх = Кнопка11.Низ + 5; Кнопка12.Ширина = Кнопка11.Ширина; Кнопка12.Высота = Кнопка7.Высота; Кнопка12.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеКрупныеЗначки"); Кнопка13 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка13.Текст = "Отображение Таблица"; Кнопка13.Лево = Кнопка7.Право + 5; Кнопка13.Верх = Кнопка7.Верх; Кнопка13.Ширина = Кнопка7.Ширина; Кнопка13.Высота = Кнопка7.Высота; Кнопка13.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеТаблица"); Кнопка14 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка14.Текст = "Отображение МелкиеЗначки"; Кнопка14.Лево = Кнопка13.Лево; Кнопка14.Верх = Кнопка13.Низ + 5; Кнопка14.Ширина = Кнопка13.Ширина; Кнопка14.Высота = Кнопка7.Высота; Кнопка14.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеМелкиеЗначки"); Кнопка15 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка15.Текст = "Отображение Список"; Кнопка15.Лево = Кнопка14.Лево; Кнопка15.Верх = Кнопка14.Низ + 5; Кнопка15.Ширина = Кнопка14.Ширина; Кнопка15.Высота = Кнопка7.Высота; Кнопка15.Нажатие = Ф.Действие(ЭтотОбъект, "ОтображениеСписок"); Кнопка16 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка16.Текст = "Сетка" + Символы.ПС + "(для Таблицы)"; Кнопка16.Лево = Кнопка15.Лево; Кнопка16.Верх = Кнопка15.Низ + 5; Кнопка16.Ширина = Кнопка15.Ширина; Кнопка16.Высота = Кнопка7.Высота; Кнопка16.Нажатие = Ф.Действие(ЭтотОбъект, "СеткаДляТаблица"); Кнопка17 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка17.Текст = "С пометками"; Кнопка17.Лево = Кнопка16.Лево; Кнопка17.Верх = Кнопка16.Низ + 5; Кнопка17.Ширина = Кнопка16.Ширина; Кнопка17.Высота = Кнопка7.Высота; Кнопка17.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка17_Нажатие"); Кнопка18 = Форма1.ЭлементыУправления.ДобавитьКнопку(); Кнопка18.Текст = "Помеченные"; Кнопка18.Лево = Кнопка17.Лево; Кнопка18.Верх = Кнопка17.Низ + 5; Кнопка18.Ширина = Кнопка17.Ширина; Кнопка18.Высота = Кнопка7.Высота; Кнопка18.Нажатие = Ф.Действие(ЭтотОбъект, "Кнопка18_Нажатие"); // подготовим мелкие значки СписокИзображенийМелкие = Ф.СписокИзображений(); СписокИзображенийМелкие.РазмерИзображения = Ф.Размер(16, 16); Для А = 1 По 500 Цикл Попытка ЗначокИзДЛЛ = Ф.Значок("C:\Windows\System32\imageres.dll", А); РисунокИзЗначка = ЗначокИзДЛЛ.ВКартинку(); СписокИзображенийМелкие.Изображения.Добавить(РисунокИзЗначка); Исключение КонецПопытки; КонецЦикла; СписокЭлементов1.СписокМаленькихИзображений = СписокИзображенийМелкие; // подготовим крупные значки СписокИзображенийБольшие = Ф.СписокИзображений(); СписокИзображенийБольшие.РазмерИзображения = Ф.Размер(48, 48); Для А = 0 По СписокИзображенийМелкие.Изображения.Количество - 1 Цикл Попытка Картинка = СписокИзображенийМелкие.Изображения.Элемент(А); СписокИзображенийБольшие.Изображения.Добавить(Картинка); Исключение КонецПопытки; КонецЦикла; СписокЭлементов1.СписокБольшихИзображений = СписокИзображенийБольшие; СписокЭлементов1.РежимОтображения = Ф.РежимОтображения.Подробно; ЗаполнитьЦветами(); СписокЭлементов1.Сортировать(СписокЭлементов1.Колонки.Элемент(0), Ф.ПорядокСортировки.ПоВозрастанию); Сообщить(?( "" + СписокЭлементов1 = "КлСписокЭлементов" , "", "!!! ") + "ФормыДляОдноСкрипта.СписокЭлементов (OneScriptForms.ListView) Метод" + " " + ТекущаяДата());
ФормыДляОдноСкрипта (OneScriptForms) Класс | Библиотека OneScriptForms