powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Библиотека иконок
24 сообщений из 24, страница 1 из 1
Библиотека иконок
    #36391137
АленаШ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем знатокам! С наступающим Вас Новым Годом!

Накопилось много иконок, используемых в проекте. Как лучше и грамотнее поступить:

1. хранить их отдельно в каталоге и переписывать с проектом ???

2. включать в проект ( размер .exe сразу увеличивается !!!) ???

3. создавать библиотеку (тогда какую и чем лучше, и как ее потом цеплять в проекте) ????

Спасибо!
...
Рейтинг: 0 / 0
Библиотека иконок
    #36391403
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И 1, и 2, и 3.

Храню в каталоге(ах) с проектом, иначе в design-time неудобно работать (добавлять, удалять, редактировать). Перед компиляцией релиза програмы запускаю сборку всех графических файликов в одну таблицу, таблица включена в exe. Преимущества: не надо следить, включил или нет нужный файлик в exe, нет огромного количества файлов в проекте. Как Вам делать - Вам решать :)
...
Рейтинг: 0 / 0
Библиотека иконок
    #36391802
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АленаШ,

Исходить нужно не из размера файла, а из практичности.
На практике почти все время нужно будет изменять ЕХЕ-файл.
Так что либо нужно поступать по методу XAndy, либо просто все включить в проект.
Размер файла нужно минимизировать только для пересылки в сети, но любой архиватор сожмет его для этих целей до нормальных размеров.
Желаю удачи.
...
Рейтинг: 0 / 0
Библиотека иконок
    #36392607
АленаШ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XAndy,

Непонятно, в этот файл-сборку Вы складываете только имена файлов с иконками или сами изображения? А как к ним обращаться быстро из форм? Что-то я туплю...
...
Рейтинг: 0 / 0
Библиотека иконок
    #36392783
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АленаШ,

Упс, соврал Вам, уж извините :)
По памяти писал, сейчас глянул - действительно есть таблица с картинками, которая автоматом строится, состоит из полей имя файла и содержимого файла (бинарное мемо), но содержимое пусто, не используется (хотя иногда я такое использовал, можно сделать через pictureval или выгружая требуемые картинки во временный каталог). Данный же файл у меня используется для другой цели - кеширования картинок при старте фокса для корректной отработки прозрачности, что позволяет обойтись без bmp+msk. Т.е. в фоксе везде, включая меню и т.п. можно обойтись png или gif, без bmp+msk.
...
Рейтинг: 0 / 0
Библиотека иконок
    #36392905
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XAndyДанный же файл у меня используется для другой цели - кеширования картинок при старте фокса для корректной отработки прозрачности, что позволяет обойтись без bmp+msk. Т.е. в фоксе везде, включая меню и т.п. можно обойтись png или gif, без bmp+msk.
Если не затруднит немного подробнее как можно обойтись без bmp+msk ?
...
Рейтинг: 0 / 0
Библиотека иконок
    #36393019
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dag,

Прозрачноть (альфа-канал) поддерживается фоксом только для объекта Image. Но фокс
запоминает (кеширует) первый раз открытую картинку со всеми её параметрами (до выполнения clear resources). Если при старте программы для всех картинок создать невидимые объекты Image, куда подгрузить картинки с прозрачностью, то фокс ВЕЗДЕ в программе для этих картинок будет учитывать прозрачность, например, в кнопках и главном меню (см.хелп по св-ву Picture, третье замечание). Поэтому при построении проекта можно составить список картинок (заодно создать файл включений для автоматического включения картинок в проект), а при запуске программы пройтись по списку, для картинок с прозрачностью создать объекты Image и присвоить св-ву Picture значение.

С картинками есть 2 решения:

1) bmp+msk
+ работает везде.
+ фокс умеет дизеблить картинки сам.
- выглядят картинки часто плохо, особенно округлости.
- при выдирании надо самому подрисовывать картинку.
- и самому рисовать msk.

2) png (или gif до sp2) со слоем прозрачности
+ можно заставить работать везде в программе с учетом прозрачности, используя кеширование
объектов Image.
+ выглядят отлично, т.к. можно использовать любые готовые картинки с прозрачностью.
+ при выдирании ничего подрисовывать не надо, просто сохранить в png (только с sp2) или gif.
- надо сохранять дополнительно дизейбленную картинку - это не требует рисования как msk,
но опять имеем пару файлов: вместо bmp+msk -> png+png.
- надо везде в программе присваивать не только picture, но и disablepicture.
- надо самому рисовать отключенное главное меню при вызове модальных форм (впрочем, в любом варианте надо отключать тулбары, поэтому и меню там же можно).

Второй вариант как-будто сложнее, но выглядит программа по человечески.
...
Рейтинг: 0 / 0
Библиотека иконок
    #36394041
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XAndy
Спасибо.Потренируюсь на выходных.
...
Рейтинг: 0 / 0
Библиотека иконок
    #36746746
XAndy
2) png (или gif до sp2) со слоем прозрачности
+ можно заставить работать везде в программе с учетом прозрачности, используя кеширование
объектов Image.
+ выглядят отлично, т.к. можно использовать любые готовые картинки с прозрачностью.
+ при выдирании ничего подрисовывать не надо, просто сохранить в png (только с sp2) или gif.
- надо сохранять дополнительно дизейбленную картинку - это не требует рисования как msk,
но опять имеем пару файлов: вместо bmp+msk -> png+png.
- надо везде в программе присваивать не только picture, но и disablepicture.
- надо самому рисовать отключенное главное меню при вызове модальных форм (впрочем, в любом варианте надо отключать тулбары, поэтому и меню там же можно).

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

а поподробнее как это реализуется можно расписать? у меня так и не получается сделать прозрачный фон png картинок на кнопках
...
Рейтинг: 0 / 0
Библиотека иконок
    #36746859
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АленаШ,
Можно и не включать иконки в проект, а прикладывать просто в папку приложения, но от этого особого счастья не будет.
...
Рейтинг: 0 / 0
Библиотека иконок
    #36747165
guest12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно, как показывал Вадим Пирожков, хранить,
я пробовал пока только в ознакомительных целях
- прикладываю пример, по статье "Тайны посторонних связей"
...
Рейтинг: 0 / 0
Библиотека иконок
    #36747171
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо7665у меня так и не получается сделать прозрачный фон png картинок на кнопках
vfp sp2 ?
...
Рейтинг: 0 / 0
Библиотека иконок
    #36747250
XAndy
vfp sp2 ?

да vfp sp2
обьект image картинки png с прозрачным фоном, а на кнопках темный
при этом в конструкторе картинки выглядят нормально, а при выполнении программы
фон темный, тут советовали

2) png (или gif до sp2) со слоем прозрачности
+ можно заставить работать везде в программе с учетом прозрачности, используя кеширование
объектов Image.
+ выглядят отлично, т.к. можно использовать любые готовые картинки с прозрачностью.
+ при выдирании ничего подрисовывать не надо, просто сохранить в png (только с sp2) или gif.
- надо сохранять дополнительно дизейбленную картинку - это не требует рисования как msk,
но опять имеем пару файлов: вместо bmp+msk -> png+png.
- надо везде в программе присваивать не только picture, но и disablepicture.
- надо самому рисовать отключенное главное меню при вызове модальных форм (впрочем, в любом варианте надо отключать тулбары, поэтому и меню там же можно).

не совсем понимаю, как это в коде должно выглядеть
...
Рейтинг: 0 / 0
Библиотека иконок
    #36747586
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо7665,

Попробуйте при старте приложения создать объект
Код: plaintext
1.
2.
goApp.AddObject("MyImage","Image")
goApp.MyImage.Picture = "MyImage.png"

Объект не уничтожать. Теперь везде в программе, где будет использоваться картинка MyImage.png (в меню и попапах, на кнопках - везде) - она будет с учетом слоя прозрачности.
...
Рейтинг: 0 / 0
Библиотека иконок
    #36748811
XAndyОбъект не уничтожать. Теперь везде в программе, где будет использоваться картинка MyImage.png (в меню и попапах, на кнопках - везде) - она будет с учетом слоя прозрачности.

не работает, на кнопках фон непрозрачный (
...
Рейтинг: 0 / 0
Библиотека иконок
    #36749234
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо7665,

ОС какая? У меня работает на XP, Vista, Win7. Ещё пробуйте gif, он тоже поддерживает прозрачный слой. Должно работать, т.к. в хелпе именно так описано (см.примечание к св-ву Picture)
...
Рейтинг: 0 / 0
Библиотека иконок
    #36749237
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимо7665,

Если не работает - делайте нерабочий пример, посмотрим.
...
Рейтинг: 0 / 0
Библиотека иконок
    #36749391
XAndyЕсли не работает - делайте нерабочий пример, посмотрим.
Сделал тестовый проект - там на кнопках все нормально, стал разбираться, что не так в основном проекте, проблема оказалась в команде _SCREEN.BackColor=... , убрал ее и фон картинок на кнопках стал прозрачным. Всем спс за помощь.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Библиотека иконок
    #37606218
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XAndyпрошелмимо7665,

Попробуйте при старте приложения создать объект
Код: sql
1.
2.
goApp.AddObject("MyImage","Image")
goApp.MyImage.Picture = "MyImage.png"



Объект не уничтожать. Теперь везде в программе, где будет использоваться картинка MyImage.png (в меню и попапах, на кнопках - везде) - она будет с учетом слоя прозрачности.

Доброе время суток!
Воспользовался советом, но вот проблема - не получается воспользоваться кодом.
Я так понимаю предварительно нужно сделать:
goApp=CREATEOBJECT("cApplication")
но в этом случае возникает ошибка - определение класса не найдено.
Подскажите правильность действий, перерыл кучу инфы, пока ничего определенного.
Что не так делаю?
...
Рейтинг: 0 / 0
Библиотека иконок
    #37607209
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StQFox ,
Это лишь пример, конкретно можно реализовывать как угодно. Если нет глобального класса приложения, можете создать глобальный массив объектов:

Код: sql
1.
2.
3.
4.
5.
public oImageCache[2]
oImageCache[1] = newobject("Image1")
oImageCache[1].Picture = "Image1.png"
oImageCache[2] = newobject("Image2")
oImageCache[2].Picture = "Image2.gif"
...
Рейтинг: 0 / 0
Библиотека иконок
    #37607215
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поправил
Код: sql
1.
2.
3.
4.
5.
public oImageCache[2]
oImageCache[1] = newobject("Image")
oImageCache[1].Picture = "Image1.png"
oImageCache[2] = newobject("Image")
oImageCache[2].Picture = "Image2.gif"
...
Рейтинг: 0 / 0
Библиотека иконок
    #37607404
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StQFoxПодскажите правильность действий, перерыл кучу инфы, пока ничего определенного.

На фоксклубе было уже несколько тем про аналогичное. Поиск рулит. ;) Вот в частности и одно готовое решение: http://forum.foxclub.ru/read.php?29,539897,539996#msg-539996
...
Рейтинг: 0 / 0
Библиотека иконок
    #37607814
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XAndy,

Спасибо за совет, надо поразбираться
...
Рейтинг: 0 / 0
Библиотека иконок
    #37607817
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Crispy,

согласен , рулит :) были ссылки и на фох клуб, - видимо не повезло :)
благодарю!
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Библиотека иконок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]