Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Delphi tbsSeparator TToolButton на нетематической панели TToolBar с плоским стилем имеет вертикальную линию посередине - как это исправить?

Автор вопроса: jedivaderОтветов: 1

Мой вопрос связан с этим:

Могут ли тематические панели инструментов Delphi иметь разделители расположенные по центру между кнопками инструментов?

У меня есть приложение Delphi 7, где у меня есть TToolButton с Style = tbsSeparator на TToolBar с Flat = True. Используя исправление, принятое в вопросе, упомянутом выше, tbsSeparator и tbsDivider рисуются, как и ожидалось, если панель инструментов тематическая (т.е. если у моего приложения есть манифест темы (XPMan) и темы Windows включены в системе, в которой работает приложение) .

Однако, если у приложения нет манифеста или если в системе не включены темы, tbsSeparator рисуется с вертикальной линией посередине, немного меньшей, чем у tbsDivider:

На скриншоте тот, что слева, - это tbsSeparator (у него не должно быть линии посередине), тот, что справа - это tbsDivider (с этим все в порядке).

Если я отключу стиль Flat, все будет в порядке, но я хочу стиль Flat на нетематической панели инструментов.

Итак, вопрос в том, как нарисовать tbsSeparator без вертикальной линии посередине на нетематическом TToolBar в стиле Flat?

  • возможный дубликат Может ли тема Delphi панели инструментов имеют разделители, расположенные по центру между кнопками инструментов? David Heffernan 16.04.2014
  • @ Дэвид, я специально упоминаю этот вопрос, и он решает часть проблемы, но не ту часть, которую я упоминаю в этом вопросе. Это решает проблему с ненужной строкой слева в tbsSeparator и tbsDivider на тематической панели инструментов, но не с ненужной линией в середине tbsSeparator на нетематической панели инструментов. Обратите внимание, что я хочу сохранить стиль Flat на нетематической панели инструментов. jedivader 16.04.2014
  • Дело в том, что решения нет. Это вывод из другого вопроса. David Heffernan 16.04.2014
  • @ Дэвид, я не вижу такого вывода. И эта проблема здесь вообще не упоминается в другом вопросе. Хотя это связано, это другой вопрос. Проблема связана с тематической панелью инструментов и линией слева, здесь проблема связана с нетематической панелью инструментов и линией посередине. И проблема там имеет решение. jedivader 16.04.2014
  • Это просто другая сторона медали. Вы не можете иметь это в обоих направлениях David Heffernan 16.04.2014
  • Вопрос может не быть дубликатом, но первое предложение принятого ответа на другой вопрос отвечает на этот. Я разместил то же самое вместе с цитатой из документации. Sertac Akyuz 17.04.2014

toolbardelphidelphi-7

Ответы

Ответ 1 · рейтинг 2 · Sertac Akyuz

Вот цитата из документации:

Стиль BTNS_SEP создает небольшой зазор между кнопками или рисует гравировку между кнопками на плоских панелях инструментов. ...

В нем говорится, что на разделителях плоских панелей инструментов нарисована гравюра. Там нет упоминания о зависимости от тем.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы