Нужен совет по работе с графикой
|
|
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, ну тогда все елементарно, только писать многа. Но можна и меньше.
|
|
| |