Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Отображение картинок в ячейках ТП (число прочтений - 13830 )
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Отображение картинок в ячейках ТП
01. Апреля 2008 :: 19:19
Печать  
Тестирую http://www.1cpp.ru/images/3/32/Icpp-latest.rar от 28.03.08, и не могу добиться, чтобы в ячейках отображались картинки. Создал тест на основе tst.ert из http://www.1cpp.ru/forum/YaBB.pl?num=1202765199, пометив в комментариях 4 строки, где есть изменения. Плюс на форме расположена картинка.

Посмотрите, пожалуйста, правильно ли я делаю - я недавно начал осваивать это чудо, и пока нет уверенности.
  

TFTstPic.ert ( 175 KB | Загрузки )
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Отображение картинок в ячейках ТП
Ответ #1 - 01. Апреля 2008 :: 19:59
Печать  
Поставь себя на место ТабличногоПоля Улыбка
Откуда оно знает какие картинки и где рисовать?

1. Добавь колонку для картинок.
2. В ПриВыводеСтроки() для ячейуи с картинкой установи ОтображатьКартинку = 1 и ИндексКартинки для вывода.
  
Наверх
ICQ  
IP записан
 
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #2 - 01. Апреля 2008 :: 20:11
Печать  
Ну, я рассуждал по аналогии с элементом диалога типа "ТаблицаЗначений". Там достаточно назначить на форме картинку, и

  эдТЗ.ВыводитьПиктограммы("КолКарт");
  ...
  эдТЗ.КолКарт=<индекс_картинки>;

А для ТП значит нужно при выводе каждой строки это делать.  Спасибо, сейчас попробую.
  
Наверх
 
IP записан
 
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #3 - 01. Апреля 2008 :: 20:39
Печать  
Да, через ПриВыводеСтроки() получилось.  Отвязал поставщика данных от первой колонки

    ТП.Колонки.Кол1.Данные=0;

и добавил

    Процедура ТаблПолеПриВыводеСтроки(__тп, __офстр, __дстр)
       __офстр.Ячейки.Кол1.SetPicture(__дстр.Кол1);
    КонецПроцедуры

Только появилась другая проблема: В документации http://www.1cpp.ru/docum/html/TableField.html#rowout дается такой синтаксис:

    ПриВыводеСтроки(ОформлениеСтроки, ДанныеСтроки, ТипРегиона)

но отладчик мне показал другой список параметров: (ТабличноеПоле, ОформлениеСтроки, ДанныеСтроки), и как теперь из первого параметра определить, когда идёт отображение шапки и подвала, я не могу сообразить.  В моей базе такой проблемы нет, поскольку нет подвала и шапки, но эта тестовая обработка выполняется с ошибкой.
  

TFTstPic_001.ert ( 175 KB | Загрузки )
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Отображение картинок в ячейках ТП
Ответ #4 - 01. Апреля 2008 :: 21:11
Печать  
Fedor писал(а) 01. Апреля 2008 :: 20:39:
Да, через ПриВыводеСтроки() получилось.  Отвязал поставщика данных от первой колонки

   ТП.Колонки.Кол1.Данные=0;

и добавил

   Процедура ТаблПолеПриВыводеСтроки(__тп, __офстр, __дстр)
       __офстр.Ячейки.Кол1.SetPicture(__дстр.Кол1);
   КонецПроцедуры

Только появилась другая проблема: В документации http://www.1cpp.ru/docum/html/TableField.html#rowout дается такой синтаксис:

   ПриВыводеСтроки(ОформлениеСтроки, ДанныеСтроки, ТипРегиона)

но отладчик мне показал другой список параметров: (ТабличноеПоле, ОформлениеСтроки, ДанныеСтроки), и как теперь из первого параметра определить, когда идёт отображение шапки и подвала, я не могу сообразить.  В моей базе такой проблемы нет, поскольку нет подвала и шапки, но эта тестовая обработка выполняется с ошибкой.


Первым параметром должно быть само табличное поле.
Т.е. в твоем случае  ТаблПолеПриВыводеСтроки(__тп, __офстр, __дстр,ТипРегиона)
Определяй ТипРегиона и действуй дальше.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #5 - 02. Апреля 2008 :: 02:35
Печать  
Fedor писал(а) 01. Апреля 2008 :: 20:39:
отладчик мне показал другой список параметров: (ТабличноеПоле, ОформлениеСтроки, ДанныеСтроки)


Более того четвертым параметром будет ТипРегиона.
А вообще если ТП создаешь просто на форме и обрабатываешь события в форме через процедуры ИдентификаторТПСобытие(...) тогда всегда первым параметром будет ОбъектТП. В случае же если создаешь КОП наследник ТП тогда события обрабатываются в КОПе с наименованием Событие(...) и тогда первого параметра не будет и все будет как написано в документации. Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Отображение картинок в ячейках ТП
Ответ #6 - 02. Апреля 2008 :: 05:20
Печать  
По поводу 4- го параметра можно поподробнее?
Для чего он нужен? Потому что у меня ПриВыводеСтроки() без него работает без ошибок.
  
Наверх
 
IP записан
 
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #7 - 02. Апреля 2008 :: 05:55
Печать  
Аха...  Был значит ещё и четвёртый параметр.  Буду теперь учитывать и такую возможность.  Спасибо.

vandalsvq писал(а) 02. Апреля 2008 :: 02:35:
Более того четвертым параметром будет ТипРегиона.
А вообще если ТП создаешь просто на форме и обрабатываешь события в форме через процедуры ИдентификаторТПСобытие(...) тогда всегда первым параметром будет ОбъектТП. В случае же если создаешь КОП наследник ТП тогда события обрабатываются в КОПе с наименованием Событие(...) и тогда первого параметра не будет и все будет как написано в документации. Подмигивание


Это очень интересная информация, я бы даже сказал, критически полезная, но в документации об этом вроде бы ничего нет.

U_zer

Четвертый параметр ТипРегиона (в документации он - третий параметр) нужен, чтобы в ПриВыводеСтроки() отличать основные строки, строки шапки и строки подвала.  Если шапки и подвала в ТП нет, то его можно игнорировать.
  
Наверх
 
IP записан
 
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #8 - 02. Апреля 2008 :: 06:18
Печать  
Извиняюсь за наговоры, есть такая информация в http://www.1cpp.ru/docum/html/TableField.html#id3, я это случайно пропустил, когда изучал:

Каждое событие, кроме описанных параметров, всегда имеет первый параметр, имеющий значение объекта - источника событий (само табличное поле).

Впредь буду внимательнее.

Вот исправленный тест, может, кому-нибудь поможет не наступать на мои грабли.
  

TFTstPic_002.ert ( 175 KB | Загрузки )
Наверх
 
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #9 - 11. Апреля 2008 :: 09:03
Печать  
Всем привет. Подскажите, как сделать картинку по центру экрана и сделать её прозрачной... я сделал картинку 16 на 16 - и цвет у неё RGB(0,80,80) - так эта картинка отображается в ячейке не прозрачной и не по центру ячейки Печаль Подскажите, пожалуйста, как это исправить. Запанеек Спасибо.
  
Наверх
 
IP записан
 
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #10 - 11. Апреля 2008 :: 09:12
Печать  
Так всё-таки: по центру экрана, формы, или ячейки ТП?  В доке по ТП написано, что прозрачность картинок в ячейках не поддерживается.  Если на форме, или на диалоговом элементе формы - то это FormEx, а не ТП.  Там вроде действует правило (0,80,80), но точно не скажу.  Или может помочь загрузка картинки из .ico файла с прозрачным фоном.
  
Наверх
 
IP записан
 
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #11 - 11. Апреля 2008 :: 09:19
Печать  
Блин, опять я наврал.  Смотрел здесь:

УстановитьКартинку

... Картинка отображается без использования цвета прозрачности. ...

А вот здесь - по другому:

УстановитьКартинкиСтрок

Описание: Устанавливает набор картинок для отображения в ячейках этой колонки. Картинками считаются части общей переданной первым параметром картинки, полученные по следующим правилам: от левого верхнего угла слева направо, ширина равна высоте. Выбирается только первый ряд. Прозрачным является цвет RGB(0x00, 0x80, 0x80). Картинки будут доступны по индексу (от нуля).

Т.е. должны быть прозрачными, только обрати внимание на 0x80 - это hex-код.
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Отображение картинок в ячейках ТП
Ответ #12 - 11. Апреля 2008 :: 09:21
Печать  
admin spb писал(а) 11. Апреля 2008 :: 09:03:
Всем привет. Подскажите, как сделать картинку по центру экрана и сделать её прозрачной... я сделал картинку 16 на 16 - и цвет у неё RGB(0,80,80) - так эта картинка отображается в ячейке не прозрачной и не по центру ячейки Печаль Подскажите, пожалуйста, как это исправить. Запанеек Спасибо.

RGB(0,80,80) отнюдь не равен RGB(0x00,0x80,0x80) Улыбка
RGB(0,128,128)
  
Наверх
ICQ  
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #13 - 14. Апреля 2008 :: 12:05
Печать  
Спасибо. Работает RGB(0,128,128). Улыбка Плохо то что табличное поле понемает всего 16 цветов  А как сделать эту картинку по центру ячейки? или чтобы текст был за картинкой?
  
Наверх
 
IP записан
 
Fedor
Junior Member
**
Отсутствует



Сообщений: 25
Местоположение: Москва
Зарегистрирован: 20. Декабря 2007
Пол: Мужской
Re: Отображение картинок в ячейках ТП
Ответ #14 - 14. Апреля 2008 :: 14:33
Печать  
Да нет, не только 16 цветов, можно отображать картинку и большей цветности.

ТП не рисует картинку по центру ячейки, это верно, но можно попытаться извернуться, используя картинки с большей шириной, и закрашивая левую часть прозрачным цветом.

И с текстом довольно легко: если в ячейке помимо картинки отображать еще и текст, то он появляется поверх картинки, но можно добавить пробелы перед текстом, тогда он сдвинется, и окажется за картинкой.

А вообще-то я тоже за то, чтобы в ТП было больше свободы в отображении картинок в комбинации с текстом.
« Последняя редакция: 15. Апреля 2008 :: 06:25 - Fedor »  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать