Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Нужен совет по работе с графикой
el_sordoДата: Суббота, 22 Января 2011, 12:34 | Сообщение # 1
Новый участник
Группа: Пользователи
Сообщений: 3
Репутация: 0
Награды: 0
Статус: Offline
Доброго времени суток всем!

Нужен совет, как реализовать тех задание – суть проблемы: есть куча изображений, достаточно много, которые объединены по группам (в каждой группе находится изображение одного и того же объекта, только в разной цветовой гамме)

Первое: есть куча кнопок, причем цвета кнопок совпадают с цветом объекта на изображении. Как правильно сделать через скрипт так, чтобы при нажатии кнопки отображалась именно то изображение, которое соответствует цвету самой кнопки, а все остальные при этом были невидимы?

Второе: как правильно сделать так, чтобы шло наложение изображений в определенной последовательности (по группам, но при условии нажатой кнопки – т.е. выбора одного из изображений в самой группе)?

Читал справку, курил инет, потратился на пиво, но не помогло, не догоняю…

Буду очень признателен за советы…


жизнь - это долгий путь на кладбище, только очень весёлый...
 
SowerДата: Суббота, 22 Января 2011, 14:41 | Сообщение # 2
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
el_sordo, плохо курили, читали и думали... :) Условия вам в помощь, здесь всё достаточно просто.

Хотя тут смотря что у вас не получается. Может вы не знаете как показать/скрыть изображение, а может не знаете как оперировать условиями и логикой. С последним должны сами разобраться.
Если с первым, то конкретней вопрос нужно задавать всё-таки. ;)

 
DEMBELДата: Суббота, 22 Января 2011, 14:45 | Сообщение # 3
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
el_sordo составь маленький демо-пример с парой кнопок и небольшими наборами картинок, так будет быстрее и нагляднее, и помощь скорее придет. А то что-то лично я силился представить как должно работать, и все еще остались вопросы.



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
el_sordoДата: Суббота, 22 Января 2011, 14:46 | Сообщение # 4
Новый участник
Группа: Пользователи
Сообщений: 3
Репутация: 0
Награды: 0
Статус: Offline
Quote (el_sordo)
Может вы не знаете как показать/скрыть изображение

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

допустим у нас есть 20 изображений, и соответственно, столько же кнопок.
как написать скрипт так, чтобы при нажатии на кнопку, показывалось именно то изображение, которое нужно, а все остальные - скрывались?

начать хотя бы с этого


жизнь - это долгий путь на кладбище, только очень весёлый...
 
DEMBELДата: Суббота, 22 Января 2011, 15:26 | Сообщение # 5
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
20 обьектов с картинками, с названиями Bitmap1, Bitmap2,..., Bitmap20. Чтобы показать нужный обьект, скажем картинку Bitmap15, скроем все картинки и покажем нужную. Расположите картинки в проекте и кнопку, в которую напишите скрипт:
Code
x$='15'
For i=1 To 20
    Obj$='Bitmap'+CHAR(i)
    Hide("Obj$")
Next i
Obj$='Bitmap'+x$
Show("Obj$")

задавая значения строковой переменной х$ (номер обьекта), вы его показываете в конце скрипта. В командах скрипта идет манипуляция с именами обьектов (подставляется в конце названия Bitmap нужный номер), сначала все 20 скрываются (перебор в цикле обьектов от 1 до 20 с применением команды Hide), а потом показывается выбранный. меняя x$, меняете и нужный обьект. все обьекты меняются из одной кнопки, поэтому задавайте значение x$ где-то еще, в других скриптах и условиях проекта, иначе как в кнопке назначите x$='15' так он и будет постоянно 15-ю картинку показывать при нажатии. Но это все нерационально. Лучше с помощью этих принципов использовать только один обьект Картинка (Picture), и с помощью ReplaceImage подгружать в него внешние файлы картинок, подменяя путь к файлу, а манипулировать именами файлов таким же принципом как и именами обьектов. логика понятна?

Добавлено (22 Январь 2011, 15:26)
---------------------------------------------
а, зря я x$ сделал строковой переменной, лучше числовой, тогда можно играться с ней как со счетчиком, увеличивая/уменьшая номер картинки. Например, при каждом нажатии кнопки х будет увеличиваться на 1 и показывать картинки по возрастанию порядкового номера имени обьекта (чтобы начать показ заново нужно будет обнулить х):

Code
x=x+1
For i=1 To 20
   Obj$='Bitmap'+CHAR(i)
   Hide("Obj$")
Next i
Obj$='Bitmap'+CHAR(x)
Show("Obj$")




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
el_sordoДата: Суббота, 22 Января 2011, 15:27 | Сообщение # 6
Новый участник
Группа: Пользователи
Сообщений: 3
Репутация: 0
Награды: 0
Статус: Offline
Quote (DEMBEL)
логика понятна?

логика пока понятна))))) спасибо огромное))))) сейчас буду сидеть и ковыряться...


жизнь - это долгий путь на кладбище, только очень весёлый...
 
DEMBELДата: Суббота, 22 Января 2011, 15:42 | Сообщение # 7
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote
Второе: как правильно сделать так, чтобы шло наложение изображений в определенной последовательности (по группам, но при условии нажатой кнопки – т.е. выбора одного из изображений в самой группе)?

что то я тут не догоняю, но принцип остается тем же. Для выбора нужного изображения в зависимости от условий, используйте порядковые именования обьектов как многомерного массива, например Bitmap1-4, Bitmap2-12 и лепите имя нужного обьекта из числовых идентификаторов выбранных условий (номер группы, номер изображения в группе):
Code
ObjName$='Bitmap'+CHAR(x)+'-'+CHAR(y)

и оперируйте полученным именем обьекта (скрывайте, показывайте), причем делайте это и независимо от х и y, оставляя что нибудь фиксированным, напр. чтобы скрыть все изображения в определенной х группе. Также можете использовать и группировку обьектов, работая с именами группы (но состояния обьектов внутри группы останутся индивидуальными), еще может помочь обьект Матрица изображений а также работа с именами обьектов как с массивами. Если вы уточните демо-примером свою задачу, думаю она будет разрешима.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
DordexДата: Суббота, 22 Января 2011, 23:05 | Сообщение # 8
Необукер
Группа: Проверенные
Сообщений: 533
Репутация: 16
Награды: 9
Статус: Offline
el_sordo, можно ещё до боли примитивным образом, если я правильно
понял первый пост темы

Code
ReorderObject("Bitmap","FRONT")

То есть все картинки должны иметь одинаковые координаты
а в каждой кнопке Вы просто указываете какую картинку
перевести на передний план... опять же если я правильно Вас понимаю... :)

 
Alex3AДата: Воскресенье, 23 Января 2011, 12:45 | Сообщение # 9
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (el_sordo)
Второе: как правильно сделать так, чтобы шло наложение изображений в определенной последовательности

Тут, случайно, не стоит ли цели получения цветного изображения из одноветных слоев?
 
DEMBELДата: Воскресенье, 23 Января 2011, 12:50 | Сообщение # 10
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
да вряд ли, он наверное хочет сделать динамический подбор цвета для какого-то обьекта на картинке, типа презентации цветовой гаммы.



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Alex3AДата: Воскресенье, 23 Января 2011, 14:29 | Сообщение # 11
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
DEMBEL, ну тогда все елементарно, только писать многа. :D
Но можна и меньше.
 
  • Страница 1 из 1
  • 1
Поиск: