Вверх ↑
Этот топик читают: Гость
Ответов: 58
Рейтинг: 1
#1: 2015-10-21 21:53:04 ЛС | профиль | цитата
Если загружать в каждое состояние кнопки(normal,select,down,enable),то программа много весит(если кнопка не одна).
Как можно не загружать картинки на схему ?
Вот как вариант.Но можно ли упростить задачу?
code_36409.txt
карма: 0

0
файлы: 1code_36409.txt [550B] [153]
Ответов: 9
Рейтинг: 0
#2: 2015-10-21 22:28:10 ЛС | профиль | цитата
Загружай из файла. Прога будет меньше весить.
карма: 0

0
Ответов: 8928
Рейтинг: 823
#3: 2015-10-21 22:51:27 ЛС | профиль | цитата
Jonson писал(а):
..то программа много весит..
Да уж, лишние 100 кб при современных ОЗУ в десятках Гб и дисках в Тб это ужасно!
[flood]Из экономии размеров родного форума не ставите пробелы в своих постах? Хотя читать и не очень удобно, зато 8 байт сэкономлено![/flood]
карма: 19

0
Ответов: 58
Рейтинг: 1
#4: 2015-10-21 23:02:01 ЛС | профиль | цитата
Леонид, На самом деле программа начинает весить на 10-12 мб больше).Вообще это же не хорошо,когда exe файл так много весит,да?
карма: 0

0
Ответов: 1304
Рейтинг: 405
#5: 2015-10-21 23:16:24 ЛС | профиль | цитата
Jonson, три варианта загрузки, мне больше нравится вариант №3, хранить картинки в упакованном виде (png, jpg) внутри программы.
button2.rar

Jonson писал(а):
Вообще это же не хорошо,когда exe файл так много весит,да?

Jonson, да и пусть себе весит, а загружать кучу мелких картинок с диска думаешь лучше будет.
карма: 3

0
файлы: 1button2.rar [4.7KB] [183]
Ответов: 58
Рейтинг: 1
#6: 2015-10-21 23:50:17 ЛС | профиль | цитата
MAV, Спасибо!
карма: 0

0
Ответов: 8928
Рейтинг: 823
#7: 2015-10-21 23:51:29 ЛС | профиль | цитата
Jonson писал(а):
на 10-12 мб больше
Ой, люблю считать мегабайты: кнопочка 55*20*3=3300 байта, 11*1024*1024/3300=~3500 кнопочек в программе Да-а, до такого ещё додуматься надо, уважаю!
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#8: 2015-10-22 00:03:48 ЛС | профиль | цитата
MAV, имея возможность задать в For InludEnd = False (по хорошему IncludingEnd), применять в 1-м варианте (да и во втором тоже) MathParse совсем как-то не по взрослому.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 58
Рейтинг: 1
#9: 2015-10-22 01:27:11 ЛС | профиль | цитата
Леонид, да не),там не только кнопки,но и картинки есть
карма: 0

0
Ответов: 1304
Рейтинг: 405
#10: 2015-10-22 08:23:33 ЛС | профиль | цитата
Tad писал(а):
задать в For InludEnd = False (по хорошему IncludingEnd), применять в 1-м варианте

Tad, да для первого варианта это лучшее решение, а для второго проще начинать отчёт от 0-вой картинки.

Jonson, перезалил архив.
ps: был у меня проект где надо было загружать в программу около сотни мелких картинок 64х64, всё бы ничего но однажды запустил программку с флешки и просто уморился ждать, время загрузки стало около 60 секунд, хотя с HDD запускалось не больше чем 3-5 сек.
карма: 3

0
Ответов: 58
Рейтинг: 1
#11: 2015-10-22 16:22:49 ЛС | профиль | цитата
MAV, Спасибо!
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#12: 2015-10-22 23:13:34 ЛС | профиль | цитата
Идем дальше bitbtn2.rar
MAV писал(а):
хранить картинки в упакованном виде (png, jpg) внутри программы.
Ну и храни в том же StreamArray внутри программы.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1bitbtn2.rar [1.4KB] [154]
Голосовали:MAV
Ответов: 1926
Рейтинг: 172
#13: 2015-10-23 05:32:48 ЛС | профиль | цитата
А также можно применить сжатие (Zip, LZH, LZMA) компонентами hiasm.
карма: 9
0
Ответов: 16884
Рейтинг: 1239
#14: 2015-10-23 08:51:21 ЛС | профиль | цитата
3042 писал(а):
А также можно применить сжатие
Сходить с ума можно по разному.

Ещё один вариант.
bitbtn3.sha
82160 bytes code, 9661 bytes data.

И стандартный вариант (картинки в кнопке)
bitbtn4.sha
50084 bytes code, 2149 bytes data.

Внимание на красные строки.
(минус 42908 bytes code, 1961 bytes data - данные exe пустой формы)

И три варианта, предложенных MAV :
Вариантbytes codebytes data
1-й. Загрузка из общего внешнего файла в BitmapArray 583322209
2-й. Загрузка картинок из отдельных файлов589202308
3-й. Хранение картинок в индивидуальных MemoryStream795369961

Результат : Самый экономный вариант - загрузка картинок в "каждое состояние кнопки"
Так что, как говорит М.Задорнов, "Не надо лохматить бабушку !"

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 2bitbtn3.sha [2.7KB] [252], bitbtn4.sha [1.1KB] [357]
Ответов: 5227
Рейтинг: 587
#15: 2015-10-23 13:10:55 ЛС | профиль | цитата
на заметку:
RealDraw делает красивые кнопки, хотя он их сохраняет в (*.3sb) это тот же png / 4 зоны изображений.
вот примерное описание процессаhttp://mmb.mediachance.com/mmbhelp/ru/index.html?mmextension.htm
Можно попробовать адаптировать этот контрол к таким кнопкам.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)