Цитата: а зачем там вшита bitmap-картинка слева? по-моему это излишество, ведь каждый байт на счету.
Подсмотрели в WinRar SFX. Вопрос пока открытый, поскольку сам SFX-модуль получился большим (порядка 70Кб после UPX). Картинка занимает где-то 10Кб, т.е. ~15%. Ниже будут отвечать Булату, тему раскрою подробнее.
Цитата: далее. при распаковке открывается отдельное окно прогресса. лучше было бы сделать прогресс в главном окне. а там где сейчас пример комментария выводить историю распакованных файлов (как в sfx winrar).
Это тоже тема дискуссии у нас с Булатом. Раскрою свою точку зрения: есть определённые тенденции в интерфейсах, в частности, пользователей сейчас принято фокусировать, показывать ему только то, что нужно в настоящий момент.
В SFX есть два шага: 1) понять, что за архив , решить, надо ли его распаковывать, указать путь в случае необходимости; 2) получать информацию о ходе процесса (фактически, оценивать — много ли осталось).
Обычно это делают либо мастером с двумя закладками, либо двумя диалогами. Как сейчас в WinRAR SFX сделано, это, скорее, наследие первых версий, которые выходили,
когда ещё устоявшейся тенденции не было.
История распакованных файлов — это наследие консольных времён. Сравните вывод команды copy и современное решение в Проводнике. Имена файлов в консоли, это свообразный индикатор процесса, для других целей он не нужен. Если файлы мелкие
и их много, там даже не разглядеть имена файлов, настолько быстро идёт скроллинг.
Т.е. моё предложение такое: если уж делать оконный (не консольный) SFX-модуль, то ориентироваться на особенности оконного интерфейса. Ну и как-то стараться соответствовать современным представлениям о GUI, которые можно подглядеть у того же Microsoft (поскольку этот конкретный модуль делается под Windows).
Замечу, что решение не окончательное, и здесь даже был своеобразный произвол с моей стороны.
В конечном итоге, хотелось бы услышать несколько мнений, чтобы понять, что, кому и для чего нужно.
Цитата: также кроме самой шкалы прогресса хорошо бы писать и проценты
Обязательно. По крайней мере, в заголовке окна — чтобы можно было оценивать ход распаковки, когда окно минимизировано. По поводу процентов в самом окне — тоже можно. Но тут есть разные варианты: можно выводить проценты, можно количество распакованных файлов/и файлов всего, можно и то, и другое.
Пока просто до этого руки не дошли, модуль только вчера заработал.
Добавлено: Цитата: хотя то что она там неупакована - просто бесит
Тут есть одна сложность и несколько решений. Картинка подгружается сейчас из ресурсов с помощью LoadBitmap. В начале я использовал RLE-сжатия для BMP-файла, и он в окне не показывался. Как только убрал RLE-сжатие, всё стало работать.
Причина пока не ясна, надо разобраться. Если не ошибаюсь, битмап достаточно распаковать в памяти, и в Win API для этого должна быть функция. В этом случае размер картинки сократится в с 10Кб до 5Кб.
Второй вариант, ещё более кардинальный, и более логичный сжать битмап freearc'ом, и мне потом вызывать твою функцию для того, чтобы распаковать его в память. Если это не очень сложно, можем сделать так.