Компонента была переименована, обновлена и перенесена в другую публикацию
Возможности и характеристики
- Данная внешняя компонента сделана по технологии NativeAPI, можно подключать прямо из макета и лишних регистраций
- Отрисовка происходит в памяти, результат получаем в виде двоичных данных, которые можно преобразовать в картинку и встроить куда угодно: на форму или даже на кнопку
- Возможность рисования с учётом полупрозрачности
- Работа с изображениями и буфером обмена
- Возможность задания собственного таймера отрисовки. Будет приходить внешнее событие
- Работа с клавиатурой, мышкой, окнами
- Компонента работает как со старой платформой 8.2.x-8.3.5, так и с новой 8.3.6
- Доступны открытые исходники, сама отрисовка сделана через библиотеку GDI+, всё структурировано, и можно легко добавлять свои методы
- Visual Studio 2015 / C++
[Число ФорматВыводимойКартинки]
0 - BMP
1 - PNG
2 - GIF
3 - JPG
4 - TIFF
5 - ICO
[Строка БуферОбмена]
БуферОбмена
[Строка Цвет]
Красный
Оранжевый
Жёлтый
Зелёный
Синий
Феолетовый
Серый
Белый
Чёрный
[Строка Координаты]
Последовательность из |%04X:%04X|,
где %04X - 4 знаковое HEX число. То есть:
|0001:0002||0064:0064||0100:0101| это
1. X = 1 / Y = 2
2. X = 100 / Y = 100
3. X = 256 / Y = 257
[Число Выравнивание]
0 - Лево / Верх
1 - Центр
2 - Право / Низ
[Строка Шрифт]
Arial
Tahoma
Times New Roman
и др.
[Число СтильШрифта]
0 - Нет
1 - Жирный
2 - Курсив
3 - Жирный + Курсив
4 - Подчёркнутый
8 - Зачёркнутый
[Строка ДействиеКлавиши]
НажатиеКлавиши
ПовторКлавиши
ОтпусканиеКлавиши
[Строка ДействиеМыши]
ДвижениеМыши
НажатиеЛевойКнопкиМыши
ОтпусканиеЛевойКнопкиМыши
ДвойнойКликЛевойКнопкиМыши
НажатиеПравойКнопкиМыши
ОтпусканиеПравойКнопкиМыши
ДвойнойКликПравойКнопкиМыши
НажатиеСреднейКнопкиМыши
ОтпусканиеСреднейКнопкиМыши
ДвойнойКликСреднейКнопкиМыши
НажатиеXКнопкиМыши
ОтпусканиеXКнопкиМыши
ДвойнойКликXКнопкиМыши
ДвижениеКолесаМыши
[Строка СобытиеОкна]
ОкноИзменено
ОкноРазвёрнуто
ОкноСвёрнуто
ОкноВосстановлено
[Число СовместноНажатыеСМышьюКнопки]
1 - Левая кнопка мыши
2 - Правая кнопка мыши
4 - SHIFT
8 - CTRL
16 - Средняя кнопка мыши
32 - Кнопка мыши X1
64 - Кнопка мыши X2
//Холст (Canvas)
[Строка Холст]
Холст_Создать(Число Ширина, Число Высота, Число ФорматВыводимойКартинки);
[ДвоичныеДанные Картинка]
Холст_ДвоичныеДанные(Строка Холст);
[ДвоичныеДанные Картинка]
Холст_УчастокДвоичныеДанные(Строка Холст, Число X, Число Y, Число W, Число H);
[Булево Результат]
Холст_Удалить(Строка Холст);
//Изображение (Image)
[Строка Изображение]
Изображение_Создать(Строка Холст_Изображение_БуферОбмена_ПутьКФайлу);
[Булево Результат]
Изображение_ИзменитьРазмер(Строка Изображение, Число Ширина, Число Высота);
[Булево Результат]
Изображение_Повернуть(Строка Изображение, Число Угол, Булево ИзменятьРазрешение);
[Булево Результат]
Изображение_Отразить(Строка Изображение, Булево X, Булево Y);
[Булево Результат]
Изображение_Обрезать(Строка Изображение, Число X, Число Y, Число W, Число H);
[Булево Результат]
Изображение_ВБуферОбмена(Строка Изображение);
[Число Ширина]
Изображение_ПолучитьШирину(Строка Изображение);
[Число Высота]
Изображение_ПолучитьВысоту(Строка Изображение);
[ДвоичныеДанные Картинка]
Изображение_ДвоичныеДанные(Строка Изображение, Число ФорматВыводимойКартинки);
[ДвоичныеДанные Картинка]
Изображение_УчастокДвоичныеДанные(Строка Изображение, Число ФорматВыводимойКартинки, Число X, Число Y, Число W, Число H);
[Булево Результат]
Изображение_Удалить(Строка Изображение);
//Рисование (Draw)
[Строка Цвет]
Рисование_ПолучитьЦвет(Число A, Число R, Число G, Число B);
[Строка Координаты]
Рисование_ДобавитьТочки(Строка Координаты, Число X, Число Y);
[Процедура]
Рисование_Точка(Строка Холст, Число X, Число Y, Строка Цвет);
[Процедура]
Рисование_Линия(Строка Холст, Число X1, Число Y1, Число X2, Число Y2, Число Толщина, Строка Цвет);
[Процедура]
Рисование_Эллипс(Строка Холст, Число X, Число Y, Число W, Число H, Число Толщина, Строка Цвет);
[Процедура]
Рисование_ЗаполненныйЭллипс(Строка Холст, Число X, Число Y, Число W, Число H, Строка Цвет);
[Процедура]
Рисование_Прямоугольник(Строка Холст, Число X, Число Y, Число W, Число H, Число Толщина, Строка Цвет);
[Процедура]
Рисование_ЗаполненныйПрямоугольник(Строка Холст, Число X, Число Y, Число W, Число H, Строка Цвет);
[Процедура]
Рисование_Треугольник(Строка Холст, Число X1, Число Y1, Число X2, Число Y2, Число X3, Число Y3, Число Толщина, Строка Цвет);
[Процедура]
Рисование_ЗаполненныйТреугольник(Строка Холст, Число X1, Число Y1, Число X2, Число Y2, Число X3, Число Y3, Строка Цвет);
[Процедура]
Рисование_Многоугольник(Строка Холст, Строка Координаты, Число Толщина, Строка Цвет);
[Процедура]
Рисование_ЗаполненныйМногоугольник(Строка Холст, Строка Координаты, Строка Цвет);
[Процедура]
Рисование_Текст(Строка Холст, Строка Текст, Число X, Число Y, Число W, Число H, Число ВертикальноеВыравнивание, Число ГоризонтальноеВыравнивание, Строка Шрифт, Число РазмерШрифта, Число СтильШрифта, Строка Цвет);
[Процедура]
Рисование_Изображение(Строка Холст, Строка Изображение, Число X, Число Y, Число W, Число H, Число Угол, Булево Отразить_X, Булево Отразить_Y);
//Таймер (Timer)
[Строка Таймер]
Таймер_Запустить(Число Период);
[Булево Результат]
Таймер_Остановить(Строка Таймер);
//Перехват (Hook)
[Булево Результат]
Перехват_Установить();
[Булево Результат]
Перехват_Убрать();
[Булево Результат]
Перехват_Установлен();
//Ввод (Input)
[Булево Результат]
Ввод_АктивироватьПерехватКлавиатуры();
[Булево Результат]
Ввод_ЗадатьПерехватКлавиши(Число VK_KEY, Булево Блокировать);
[Булево Результат]
Ввод_УбратьПерехватКлавиши(Число VK_KEY);
[Булево Результат]
Ввод_ДеактивироватьПерехватКлавиатуры();
[Булево Результат]
Ввод_АктивироватьПерехватМыши();
[Булево Результат]
Ввод_ЗадатьПерехватДействияМыши(Строка ДействиеМыши, Булево Блокировать);
[Булево Результат]
Ввод_УбратьПерехватДействияМыши(Строка ДействиеМыши);
[Булево Результат]
Ввод_ДеактивироватьПерехватМыши();
// Окно (Window)
[Строка Окно]
Окно_Главное();
[Строка Окно]
Окно_ПолучитьПоЗаголовку(Строка Заголовок);
[Булево Результат]
Окно_Дочернее(Строка Окно);
[Булево Результат]
Окно_ПолучитьКоординаты(Строка Окно, Число X1, Число Y1, Число X2, Число Y2);
[Булево Результат]
Окно_ВОтносительныеКоординаты(Строка Окно, Число X, Число Y);
[Булево Результат]
Окно_Переместить(Строка Окно, Число X1, Число Y1, Число X2, Число Y2);
[Булево Результат]
Окно_АктивироватьПерехват();
[Булево Результат]
Окно_ЗадатьПерехват(Строка Окно);
[Булево Результат]
Окно_УбратьПерехват(Строка Окно);
[Булево Результат]
Окно_ДеактивироватьПерехват();
//Тест (Test)
[Булево Результат]
Тест_ВнешнееСобытие(Строка Источник, Строка Событие, Строка Данные);
// Внешние события
Источник
"NativeDraw"
[Таймер]
Cобытие
"СистемныйТаймер"
Данные
Таймер
[Клавиатура]
Cобытие
ДействиеКлавиши
Данные
Окно|0|0|КодКлавиши|0
[Мышь]
Cобытие
ДействиеМыши
Данные
Окно|X|Y|СовместноНажатыеСМышьюКнопки|ЗначениеКолесаМыши
[Окно]
Cобытие
СобытиеОкна
Данные
Окно
Компонента была переименована, обновлена и перенесена в другую публикацию
- 1.0 - Первая публичная версия
- 1.1 - Адаптировано для новых платформ
- 2.0 - Добавлена работа с изображениями, таймеры теперь не часть региона рисования, фиксы, переименование ф-ий
- 2.1 - Фиксы, добавлена работа с буфером обмена (Изображения)
- 2.2 - Добавлена ф-ия Изображение_ИзменитьРазмер(), в DLL-файле теперь прописана версия
- 2.3 - Переделана работа с хуками, добавлена поддержка мыши, добавлены некоторые функции получения окон (для вычисления координат для мыши), переименованы события
- 2.4 - Несколько проверок в коде, тестовая функция для внешнего события
- 2.5 - Переделан немного вывод картинки, добавлено несколько форматов выводимой картинки, добавлены 2 функции для получения двоичных данных сразу с изображений
- 2.5.1 - Фиксы
- 2.6 - Переделана архитектура компоненты в части работы с хуками. Хуки теперь не часть ввода. Добавлены функции и события для отлова событий окон. (Пример: Ввод, Хуки, Окна)
- 2.6.1 - Исправлены ошибки в ф-иях буфера обмена
- 2.6.2 - Добавлена отрисовка многоугольников, перекомпиляция для работы с Windows 7
В файлах-примерах внешняя компонента уже вшита, но не всегда последняя.
Последнюю версию можно скачать отдельным файлом или скомпилировать исходники.
В файлах-примерах внешняя компонента подгружается из макета, но 1С иногда это как-то
криво делает и может загрузить старую версию вместо новой (у компоненты есть свойство "Версия").
Для устранения проблемы почистите кеш.