Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Событие для объекта Картинка (число прочтений - 8855 )
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Событие для объекта Картинка
Ответ #15 - 08. Сентября 2010 :: 11:30
Печать  
Noy писал(а) 08. Сентября 2010 :: 10:45:
А чем не устроили обычные кнопки с картинкой?


Думал так сделать. Но всё ж таки интереснее было с картинками реализовать. Уж больно просто с кнопками. И угловато. Если б можно было у кнопки границы убирать.... Вот тогда...

Да. И спасибо большое за обновлённый класс Гиперссылок. То, что нужно! Я именно его и использую (http://www.infostart.ru/public/67228/ Только там пока ещё не обновлённый вариант).
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #16 - 08. Сентября 2010 :: 11:59
Печать  
Кнопкой, в любом случае будет некрасиво - ибо будет виден эффект нажатия, даже если ты "отрежешь" края контрола, что сделать легко с помощью картинки, поверх кнопки.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Событие для объекта Картинка
Ответ #17 - 08. Сентября 2010 :: 12:06
Печать  
У меня кнопка вообще становится видимой, если нажать на картинку, за которой эта кнопка спрятана.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #18 - 08. Сентября 2010 :: 12:14
Печать  
Так и должно быть - нужно еще видимостью играться потом.
После нажатия на кнопку..
+ отлавливать события типа Tab  или при нажатой кнопке - увод фокуса с контрола (типа мышой резко в сторону), будет тоже неприятный артефакт при использовании кнопки с картинкой, так что, лучше или картинка и ловля флажком, или, что лучше - формексом отлов атрибута (как в классе гиперсылки), изменения курсора и т.д..

Там полная иллюзия "настоящей" гиперсылки.

ЗЫ: а можешь еще в эту сторону посмотреть:
3D Active Button Magic
там тоже всё что угодно - и любые кнопки любых размеров, и анимация и гипперсылки и т.д..


  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Событие для объекта Картинка
Ответ #19 - 10. Сентября 2010 :: 11:57
Печать  
Формексом работать с картинками не получается.

Что обнаружил:

1. Формекс не умеет работать с картинкам с прозрачным фоном. При установке такой картинки прозрачный фон меняется на черный.
2. Как только установил картинку с помощью формексовского метода Картинка (элемент определяется по координатам) - перестает работать стандартный метод ЭлементКартинка.Загрузить(ИдентификаторКартинкиВБиблиотеке)

Так что пока остаюсь при Гиперссылках. С ними все ОК.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #20 - 10. Сентября 2010 :: 13:00
Печать  
Показать картинку на форме с прозрачным фоном, созданную, например динамически ?
Улыбка
Хотя, можно и "штатненько"
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Событие для объекта Картинка
Ответ #21 - 10. Сентября 2010 :: 13:13
Печать  
Да, ладно... Прикалываться...  Улыбка

Просто штатным методом присваиваю картинку из библиотеки - всё ОК
Формеком - прозрачный слой становится черным.

Да, кстати, забыл сказать, что картинка, если это имеет значение, в формате emf.

Ну, а по поводу второго - создайте тестовую обработку, на форме поместите картинку с идентификатором КК и в модуле такой код:

Код
Выбрать все
//*******************************************
Процедура Сформировать()
     КК.Загрузить("Колесо_красное");
КонецПроцедуры

Процедура ПриОтжатииЛевойКнопки(сост, х, у)
    ФормаРасш = СоздатьОбъект("РасширениеФормы");
    Атр = ФормаРасш.ПолучитьАтрибутПоКоординатам(х,у);

    Если ТипЗначенияСтр(Атр) = "АтрибутФормы" Тогда
	Если Атр.ТипЗначенияСтр() = "Картинка" Тогда
		Атр.Картинка = "Рука";  
	КонецЕсли;
    КонецЕсли;
КонецПроцедуры 



Только вместо идентификаторов "Рука" и "Колесо_красное" свои какие нибудь из библиотеки пропишите.

Теперь нажмите на картинку. Должна появится одна картинка.
А потом на кнопку "Сформировать" - по идее должа появится другая, но она не появляется.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #22 - 10. Сентября 2010 :: 13:18
Печать  
Вот фома то не верующий..
на вот, ознакомься
  

_____________________004.ert ( 395 KB | Загрузки )
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #23 - 10. Сентября 2010 :: 13:20
Печать  
alyuev писал(а) 10. Сентября 2010 :: 13:13:
Только вместо идентификаторов "Рука" и "Колесо_красное" свои какие нибудь из библиотеки пропишите.


Ээх.. АЛьфу вломы было видать доделывать, чтоб картинки нормально с "наружи" тянулись, или хотя бы с формы, с объекта "Картинка" - вот и приходится "извращаться"
А пихать картинки в библиотеку картинок - вообще моветон, имхо.
Теряется вся универсальность и независимость от мд любой поделки.

Да , чтоб картинка была "прозрачной" в библиотеке картинок - то это должна быть ico 32х32 и не больше, ни меньше..
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Событие для объекта Картинка
Ответ #24 - 10. Сентября 2010 :: 13:30
Печать  
Eprst писал(а) 10. Сентября 2010 :: 13:20:
Да , чтоб картинка была "прозрачной" в библиотеке картинок - то это должна быть ico 32х32 и не больше, ни меньше..


Я вставлял EMF разных размеров. Всё работает. Типа такого:
  

Bill.jpg ( 36 KB | Загрузки )
Bill.jpg

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #25 - 10. Сентября 2010 :: 13:32
Печать  
alyuev писал(а) 10. Сентября 2010 :: 13:30:
Eprst писал(а) 10. Сентября 2010 :: 13:20:
Да , чтоб картинка была "прозрачной" в библиотеке картинок - то это должна быть ico 32х32 и не больше, ни меньше..


Я вставлял EMF разных размеров. Всё работает.


"Работает" - это типа в библиотеке картинок фон чорный становится ?
ЗЫ: смотри лучше демо-пример - там более менее "нормальное" решение для картинки с прозрачным фоном на форме любого размера.

Улыбка)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #26 - 10. Сентября 2010 :: 13:35
Печать  
Выложи пару emf своих для тестов.
ЗЫ: emf, если чесно не пробовал вставлять.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Событие для объекта Картинка
Ответ #27 - 10. Сентября 2010 :: 13:38
Печать  
Работает - это значит прозрачный фон как должен быть.

Предыдущий мой пример (из Bill-а) не корректен. Посмотрел у себя в коде - Картинки (Акцептован и Оплачен) на форме. Хотя в библиотеку тоже их вставлял, но без идентификатора. Потому из библиотеки их не использую.

Но взять же хотя бы то "колесо" - это уже из библиотеки тятется. И нормально отображается прозрачный фон.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Событие для объекта Картинка
Ответ #28 - 10. Сентября 2010 :: 13:43
Печать  
alyuev писал(а) 10. Сентября 2010 :: 13:38:
Работает - это значит прозрачный фон как должен быть.

Предыдущий пример не корректен. Посмотрел в коде - Картинки на форме. Хотя в библиотеку тоже их вставлял, но без идентификатора. Потому из библиотеки их не использую.

Но взять же хотя бы то "колесо" - это уже из библиотеки тятется. И нормально отображается прозрачный фон.


Ты не догоняешь,там нет картинки на форме. На форме есть пустая картинка (которая заполняется в приОткрытии ) и по кнопке создается еще одна - динамически, через добавить атрибут.

Это просто 2 способа я тебе показал - "штатно" на форме и формексом программно.
А так, на форме картинку можно и не кидать - лепить только через ДобавитьАтрибут
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Событие для объекта Картинка
Ответ #29 - 10. Сентября 2010 :: 13:45
Печать  
Не, я всё догнал Улыбка. Исправил свой пост выше, т.к. там я говорил про свою вставленную картинку из Билла.

Вот тестовый пример с EMF.
  

_____________008.ert ( 43 KB | Загрузки )

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать