Пользовательская панель инструментов

Автор Andreych, 07.12.18, 22:26:51

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Andreych

Я так и думал, что может не получиться :)
Есть одна неочевидная тонкость. У панели кнопок нет событий для мыши вообще, поэтому под кнопками я оставил примерно 3 пикселя от списка команд, чтобы его не было видно, но можно было бы таскать за него. Чтобы было легче попадать в 3 пикселя, я перед сжатием окна  оставляю справа от кнопок немного пустого места, чтобы потом хвататься за него.
Можно будет сделать так: Shift+мышь - двигать правую границу, Ctrl+мышь - нижнюю.

ТрындецЪ

И надо что-то с иконками делать. Они же вообще еле различимы.
Вот например я открыл в проводнике папку с распакованными иконками. Иконки 16х16 в проводнике видны без искажений, а остальные сжаты и визуально это выглядит так же, как и в Вашей программе.

Andreych

Есть предположение. Т.к. в каждом файле ico лежат иконка размеров 16, 32, 24, 48, возможно Delphi берет из файла ico иконку с максимальным разрешением и ее масштабирует до нужного размера.
Когда я пробовал установить размер иконок 32х32, вот там все отображалось отлично, но иконки большие.
Если бы сделать 2 набора файлов ico - один только иконки 16х16 вытащить, другой только с 24х24, может быть это и помогло бы.
Но как это сделать автоматически я не нашел. А вручную обрабатывать 1500 иконок - это не дело.

ТрындецЪ

Цитата: Andreych от 11.12.18, 09:48:33
Есть предположение. Т.к. в каждом файле ico лежат иконка размеров 16, 32, 24, 48, возможно Delphi берет из файла ico иконку с максимальным разрешением и ее масштабирует до нужного размера.
Когда я пробовал установить размер иконок 32х32, вот там все отображалось отлично, но иконки большие.
Если бы сделать 2 набора файлов ico - один только иконки 16х16 вытащить, другой только с 24х24, может быть это и помогло бы.
Но как это сделать автоматически я не нашел. А вручную обрабатывать 1500 иконок - это не дело.

Вот то, что в программе зашиты иконки 32х32 больше всего похоже на правду.
Иконки все в папке пронумерованы начиная с 1. Идут в порядке очереди. Попробую разобрать папку по размерам.

Andreych

Да, щас проверил, так и есть. Если сделать отдельные иконки 16х16, 24х24, то тогда они все отображаются отлично.
А вот если указывать на кнопку общий файл ico с несколькими иконками, так они искажаются.
Теперь нужно как-то вытащить иконки по одной и чтобы их нумерация не сбилась. Дело то осложняется тем, что не во всех иконках 4 размера, где-то нет размера 24, а есть 20 или только 32.
Ну или не делать вариант с увеличенными иконками.

pr0100

А отфильтровать иконки по разрешению в Windows нельзя?
+ Благодарностей: 1

ТрындецЪ

11.12.18, 11:04:27 #26 Последнее редактирование: 11.12.18, 11:18:49 от ТрындецЪ
Цитата: pr0100 от 11.12.18, 11:00:09
А отфильтровать иконки по разрешению в Windows нельзя?

Именно так и сделал.
https://www97.zippyshare.com/d/wlRspaYM/287/ICON.zip

pr0100

И как скачивать с этого ресурса, без открытия файлов на кучу рекламы?

ТрындецЪ

Цитата: pr0100 от 11.12.18, 11:07:57
И как скачивать с этого ресурса, без открытия файлов на кучу рекламы?

Не вижу никакой рекламы :-)))

Upd:А хотя, вижу, погорячился :%:
Вот прямая ссылка https://www97.zippyshare.com/d/wlRspaYM/287/ICON.zip

Andreych

Так и я сделал - вырезал отдельно иконки размером 16 и 24. Но они же перепутываются. Кол-во 16х16 - 1473шт, а 24х24 - 1445шт.
И выходит, что при переключении размера иконка может поменяться. Я то хотел именно идентичный набор иконок разного размера получить.

ТрындецЪ

Цитата: Andreych от 11.12.18, 11:22:33
Так и я сделал - вырезал отдельно иконки размером 16 и 24. Но они же перепутываются. Кол-во 16х16 - 1473шт, а 24х24 - 1445шт.
И выходит, что при переключении размера иконка может поменяться. Я то хотел именно идентичный набор иконок разного размера получить.

Мы урежем список, оставив только совпадающие. Имена иконок должны быть одинаковы? Или они в одной папке будут лежать? Вообще какие имена нужны?

Andreych

Имена иконок не важны. Важен их порядок. т.к. они добавляются в Imagelist и им назначается порядковый номер. Вот эти номера и должны совпасть.
В принципе можно сравнить оба набора иконок и убрать те 30шт, которых нет в размере 32х32. Но это придется сравнивать на глаз.

ТрындецЪ

Цитата: Andreych от 11.12.18, 11:40:00
Имена иконок не важны. Важен их порядок. т.к. они добавляются в Imagelist и им назначается порядковый номер. Вот эти номера и должны совпасть.
В принципе можно сравнить оба набора иконок и убрать те 30шт, которых нет в размере 32х32. Но это придется сравнивать на глаз.

Вот по 1435 штук трех размеров (16, 24, 32) в одной папке.
https://my-files.ru/Save/26pvg7/ICONs.zip

Andreych

Я вот думаю, лучше не удалять те 30шт, а наоборот их же добавить в набор 24х24, пусть эти 30 иконок немного исказятся, не страшно.
+ Благодарностей: 1

Andreych

Иконки вроде поправил. Обошелся без разделения иконок по размерам.
И добавил Ctrl+мышь для перемещения нижней границы окна в режиме без заголовка.
Кпопка F9 вкл/выкл режим без заголовка, F12 - изменение размера иконок.
+ Благодарностей: 3

Вират Лакх

12.12.18, 02:50:59 #35 Последнее редактирование: 12.12.18, 03:33:05 от Вират Лакх
Вот теперь супер выглядит! Можно начинать серьезное тестирование.
0) Недостающие иконки можно сделать из исходников другого размера, например, программой IrfanView. Ей можно даже пакетным режимом несколько переразмерить.
1) Задвигалку с выбором кнопок можно сделать по ширине самой нижней строки в режиме больших иконок. А лучше п.2.
2) Предлагаю заменить задвигашку на такой же листбокс типа как выбор команд. И расположить его рядом со списком команд (слева). Будет логичнее. А то я не сразу догнал, как формировать кнопку. В новом оформлении мы выбирали бы из двух рядом расположенных списков. В длинном списке (длиннее раза в три-пять) будет легче искать, чем в задвигалке, ограниченной по высоте. Тем более, в вертикальной панели она заменяется на подсолнух.
3) Нужно сделать удаление кнопки-команды. Или я не понял, как это делать в программе. Скрыть галочкой - понятное дело, но хочется удалить. Из панели тоже понял, как удалить. Она остается в Настройках - Команды.
4) Вытащенной панельке из главного окна программы можно придать свойство Поверх всех окон?
5) Режим редактирования относится только к главной панели. Но я же могу сделать свои панельки. Нужно, чтобы режим редактирования активизировал все панельки.
6) Скрыть заголовок окна предлагаю сделать простым - просто убрать рамку окна без какого-либо изменения размера окна. Без шифтов и контролов. Должно остаться поле с панельками, которое подгоняется само. И вообще, странная команда. Выкинуть её вообще. Когда не будет листбокса со списком команд, останутся одни панельки горизонтальные или вертикальные. За заголовок можно будет таскать главное окно и масштабировать. Даже если не убирать листбокс, можно руками нормально выставить.
7) Списки команд и иконок должны появляться и исчезать при нажатии на кнопку Режим редактирования.
8) Можно сделать, чтобы список команд отобразился во вкладке Команды в Настройках в категории Все команды? Короче говоря, давайте приближаться к компасу 16.1.
9) Можно в список иконок добавить свои иконки? Например, оно надо при добавлении макроса.
10) Давайте уберем проверку запуска копии программы. Я предлагаю сделать несколько каталогов с программой. Получится, что можно будет запустить несколько панелей. Или программа одна, но запущена (как мы любим) через ключи, которые разделяют копии программ-панелей.
Upd. Основная мысль - главное окно программы должно быть таким, как оно должно быть в рабочем состоянии - просто пользовательская панель. Все настройки - это должно появляться и исчезать при настройке. Этот лист бокс можно вообще сделать в отдельном окне, которое проявляется при определении команд. А команды добавлять классическим способом по п.8 или обоими путями. Задача участников форума - сформировать файл, в котором будут сопоставлены команды с иконками. Этот файл выкладывать тут по мере заполнения.
+ Благодарностей: 1

Andreych

0. Недостающих уже нет, я использовал все те иконки, что были.
2. Согласен, список иконок сделаем рядом со списком команд.
3. Об удалении я думал, но решил не делать, т.к. можно же скрывать. И к тому же пока не решена проблема с автоматическим сохранением настроек кнопок. Например, добавленные кнопки не сохраняются, я не могу понять почему, сохраняется только то, что было изначально в Desing time. Подозреваю, что удаленные кнопки тоже появятся опять.
4. Вытащенную панельку нельзя сделать поверх всех.
5. Режим редактирования действует и на новые панели, только не подсвечиваются они.
6. Да, я тоже думаю об этом, не мудрить с изменением и подгонкой размеров при скрытии заголовка. Все равно все случаи учесть не получается. Просто отключить заголовок. Но проблема в том, что такое окно нельзя изменять в размерах. Да ну и ладно. Если например, панелька передвинется из поля видимости, то можно опять включить заголовок, раздвинуть окно и опять убрать заголовок, вручную, но это же не часто придется делать.
7. У списка команд еще есть одна функция, при двойном нажатии на строку выполянется соотв. команда. Даже без добавления кнопки на панель. По моему удобно. Хотя может этот список тоже сделать отдельной панелью, чтобы ее можно было вытащить отдельно, закрыть/отобразить/раздвигать.
9. Свои икноки добавить нельзя, они не сохранятся потом. Иначе надо будет эти иконки в виде отдельных файлов всегда с программой таскать, где-то запоминать их номера.
10. Да, проверку 2го запуска можно убрать, но тогда 2ю копию надо будет запускать уже из другой папки, иначе будут открываться всегда 2 идентичные панели.

Вират Лакх

0. Если они искажаются, значит их не хватает. Того размера, который нужен.
2. Ждем-с.
3. Этот пункт связан с п.8.
4. Ну и ладно.
5. Нельзя сделать, чтобы все подсвечивались? Или тогда уж никакие. Иначе это сбивает с толку.
6. Не только изменить в размерах, но и передвинуть. Это будет эдакая фиксация. Так и сделайте.
7. Да, список должен быть отдельно. Двойным кликом вряд ли кто будет пользоваться постоянно через список. Оно надо только для проверки, ту ли команду нашел, которая нужна.
8. Что скажете о переносе списка команд во вкладку Команды в Настройках?
9. Как тогда быть?
10. В зависимости от номера ключа, можно файл настроек обзывать. Если ключ не указан, то как сейчас. Если ключ будет "1", то в название файла конфигурации добавить "1". Не хотелось бы папками это делать. Но на крайняк и папками сойдет.

ТрындецЪ

Спасибо за новые иконки, всё супер! :j:
Со стилем Flat вообще под цвет интерфейса Компаса получается.
В режиме без заголовка нижнюю границу смог изменить, а правая у нас теперь неактивна?

Upd: как-то случайно получилось подвигать правую границу, но так и не понял, как я это сделал :-)))


Andreych

В режиме без заголовка за саму панель никак не получается таскать. Нужно хвататься за самый низ панели, где оставлено 3 пикселя от основной формы. За эти 3 пикселя можно перемещать окно, а с shift или Ctrl раздвигать правую или нижнюю сторону. Иначе никак не получается.
+ Благодарностей: 1