Переключение на Главную Страницу Страницы: [1] 2 3 4 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ИзображенияДляТаблицы" (число прочтений - 24448 )
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Класс "ИзображенияДляТаблицы"
01. Июня 2012 :: 13:22
Печать  
Буквально на днях встала задача программного размещения картинок в уже сформированной таблице, при этом картинки должны были быть с прозрачным фоном. Как результат изысканий появился данный класс - возможно кому-нибуть пригодится.

[b]Что может:[/b]
Размещать в произвольном месте в таблице картинки с прозрачным фоном, с возможностью произвольного смещения картинки по оси X/Y, c возможностью поворота картинки на произвольный градус.

[b]Где использовать:[/b]
[list][*]при вставке подписей и печатей
[*]при вставке фирменных логотипов
[*]для реализации корпоративного оформления документов
[*]и т.д.
[/list]

[b]Что используется:[/b]
1. [b]ВК TableDoc.dll[/b] - автор [b][i]Трапезников Дмитрий[/i][/b] ([b]trad[/b]) ([url]http://infostart.ru/public/20089/[/url]) - используется возможность добавления в таблицу произвольного количество OLE-объектов произвольных размеров (обязательно)
2. [b]ActiveX элемент управления  bmp_1c.ocx[/b] (ActiveBMP) - автор [b][i]Морев Андрей[/i][/b] ([b]Z1[/b]) ([url]http://1c.proclub.ru/modules/mydownloads/personal.php?lid=2725&cid=111[/url]) - используется непосредственно для отображения картинок в таблице (обязательно)
3. [b]ActiveX GFLAx[/b] ([url]http://www.xnview.com/en/download_gfl.html[/url]) - для возможности произвольного поворота вставляемого изображения и конвертации входящего изображения в BMP (опционально)

При наличии GFLAx - входящий файл картинки может быть практически любого графического формата, иначе - только BMP.

[b]Свойства:[/b]
[i]ЕстьПроизвольноеСмещение [/i] - использовать произвольное смещение при размещении объекта в таблицу (0 - нет; 1 - да);
[i]ПроизвольноеСмещениеНач_X, ПроизвольноеСмещениеКон_X, ПроизвольноеСмещениеНач_Y, ПроизвольноеСмещениеКон_Y[/i] - границы в пикселях для произвольного смещения;
[i]ЕстьПроизвольныйПоворот[/i] - использовать поворот на произвольный градус при размещении объекта в таблицу  (0 - нет; 1 - да);
[i]ПроизвольныйПоворотНач, ПроизвольныйПоворотКон[/i] - границы для ограничения градуса поворота;

[b]Методы: [/b]
[i]ПодключитьТаблицу(Таб)[/i] - подключение таблицы к классу
[list][*][i]Таб [/i]- объект типа "Таблица"
[/list]
[i]ДобавитьИзображение(Лево, Верх, Право, Низ, Путь, Тип)[/i] - добавление изображения в таблицу
[list][*][i]Лево, Право, Верх, Низ[/i]  - координаты добавиления изображения в таблицу (см. "тип")
[*][i]Путь[/i] - путь к файлу изображения
[*][i]Тип[/i] - тип системы координат: 0 - пиксельная; 1 - табличная; 2 - левый верхний угол задается в табличной системе, в "право,низ" - задается смещение относительно левого верхнего угла
[/list]

Пример добавления в таблицу подписи с печатью[code]
     ....
     Таблица = СоздатьОбъект("Таблица");
     //заполнение таблицы
     ....
     Таблица.Показать();

     Печ = СоздатьОбъект("ИзображенияДляТаблицы");
     Печ.ПодключитьТаблицу(Таблица);
     Печ.ЕстьПроизвольноеСмещение = 1;

     Печ.ЕстьПроизвольныйПоворот = 0;
     
     Печ.ДобавитьИзображение(2,5,70,50,"C:\Подпись.gif",2);

     Печ.ЕстьПроизвольныйПоворот = 1;
     Печ.ПроизвольныйПоворотНач = -15;
     Печ.ПроизвольныйПоворотКон = 15;

     Печ.ДобавитьИзображение(300,150,430,280,"C:\Печать.gif",0);

[/code]

В примере видно, что для подписи используется произвольное смещение (по умолчанию - в пределах от -15 до +15 пикселей по осям X/Y), а для печати - произвольное смещение и произвольный поворот. В этом случае каждый раз при выполнении этого примера на выходе будет [i]уникальная[/i] картинка.

Возможно, у кого-нибуть есть предложения по улучшению функционала?

[b]Ссылка на ИС[/b]
[url]http://infostart.ru/public/138263/[/url]
(если у кого-то возникнут проблемы со скачиванием файла с ИС - пишите в личку)
« Последняя редакция: 06. Июня 2012 :: 10:35 - zar »  
Наверх
 
IP записан
 
an2
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 23. Марта 2012
Re: Класс "ИзображенияДляТаблицы"
Ответ #1 - 01. Июня 2012 :: 16:00
Печать  
Полезненько. Весьма.
  
Наверх
 
IP записан
 
EvgeniuXP
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #2 - 06. Июня 2012 :: 15:00
Печать  
а нельзя написать класс, где можно установить большой размер шрифта и при этом он мог прилегать к самому краю левой вертикальной линии таблицы? ценники плохо делать в 1С 7.7 - отступы большие между левой вертикальной чертой и где начинается буква при больших размерах (размер 79 - очень хорошо видно...).
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #3 - 06. Июня 2012 :: 16:32
Печать  
EvgeniuXP писал(а) 06. Июня 2012 :: 15:00:
а нельзя написать класс, где можно установить большой размер шрифта и при этом он мог прилегать к самому краю левой вертикальной линии таблицы? ценники плохо делать в 1С 7.7 - отступы большие между левой вертикальной чертой и где начинается буква при больших размерах (размер 79 - очень хорошо видно...).

так уже все давно написано
испоьзуй мой ActiveText "родственник" ActiveBmp
там можно использовать высоту шрифта.
Применял лично высоту 100 ( тот пример не найду ).
  
Наверх
 
IP записан
 
EvgeniuXP
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #4 - 09. Июня 2012 :: 13:53
Печать  
Z1 писал(а) 06. Июня 2012 :: 16:32:
так уже все давно написано
испоьзуй мой ActiveText "родственник" ActiveBmp
там можно использовать высоту шрифта.
Применял лично высоту 100 ( тот пример не найду ).

отличное решение, разобрался - уже сделал - даже лучше чем мог себе представить! Спасибо!
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #5 - 13. Июня 2012 :: 06:31
Печать  
2 Z1
Может имеет смысл добавить поддержку ActiveText в класс?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #6 - 13. Июня 2012 :: 07:52
Печать  
zar писал(а) 13. Июня 2012 :: 06:31:
2 Z1
Может имеет смысл добавить поддержку ActiveText в класс?

добавьте.
Вы же автор класса.
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #7 - 13. Июня 2012 :: 09:20
Печать  
мда... не совсем корректно выразился...
Если есть потребность в добавлении ActiveText в класс - добавлю.
Вот и спрашиваю:
Цитата:
Может имеет смысл добавить поддержку ActiveText в класс?
  
Наверх
 
IP записан
 
EvgeniuXP
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #8 - 14. Июня 2012 :: 15:58
Печать  
zar писал(а) 13. Июня 2012 :: 06:31:
2 Z1
Может имеет смысл добавить поддержку ActiveText в класс?

я только ЗА Улыбка
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #9 - 19. Июня 2012 :: 06:10
Печать  
Обновил класс на ИС.
Теперь можно выводить текст стандартной надписью текст и с помощью ActiveText. Ну и заодно вывод ШК сделал (так же 2 способами). Кроме того переделал процедуры добавления объекта в функции с возвращением ссылки на созданный объект - можно играть со свойствами объекта как душе угодно.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #10 - 19. Июня 2012 :: 07:43
Печать  
(9) а двухмерные шк поддерживает ???
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #11 - 19. Июня 2012 :: 10:44
Печать  
2 (Z1)
Пока только EAN13
С двухмерными особо не сталкивался... есть что посоветовать? Улыбка
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #12 - 19. Июня 2012 :: 11:26
Печать  
ну кстати, можно без проблем PDF417 добавить ...
http://infostart.ru/public/16666/
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #13 - 19. Июня 2012 :: 11:34
Печать  
ну и такой вариант подключить можно...
http://infostart.ru/public/20604/
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ИзображенияДляТаблицы"
Ответ #14 - 20. Июня 2012 :: 09:14
Печать  
(10) обновил класс на ИС. Из нового: возможность вывода 81 типа ШК, в т.ч. двухмерные QR Code, Data Matrix и т.д. с корректной кодировкой кириллицы.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 4
ОтправитьПечать