Каковы накладные расходы TPanel на TBevel? - PullRequest
2 голосов
/ 22 сентября 2011

Я работаю над проектом, в котором они по существу использовали TPanel с единственной целью отображения скоса (и, возможно, панель удобства времени разработки имеет над Bevels).

Хорошо, я знаю, что TPanel тяжелее TBevel. Помимо прочего, каждый TPanel создает пользовательские объекты, что является ограниченным ресурсом.

Что я хотел бы знать, помимо пользовательских объектов, каковы издержки TPanel? Это рядом с несуществующим (особенно на современных машинах).

Если бы вы работали в такой системе, вы бы предложили:

  • Возвращаясь и меняя все TPanel на TBevel.
  • Скажи: "Хорошо, это было плохо. Давай не будем делать это снова в будущем" или
  • это слишком маленькая проблема, и удобство проектирования хорошо стоит.

Ответы [ 2 ]

5 голосов
/ 23 сентября 2011

Я бы не знал, является ли этот дизайн преднамеренным, но есть небольшая разница в поведении при навигации, когда элементы управления сгруппированы в окне. Если фокус изменяется с помощью клавиш со стрелками, после того, как у него есть последний порядок табуляции, первый элемент управления будет сфокусирован (вниз / вправо) или наоборот (вверх / влево). IOW фокус будет обернут в родительский. Это, конечно, если какой-либо элемент управления не нуждается в клавишах со стрелками.

Что касается вопроса, как это уже указано в комментариях, кроме использования счетчика в пуле объектов, существуют другие ресурсы, связанные с окном. Это также приведет к потере нескольких циклов процессора. Будет еще один уровень в цепочке отсечения или в сообщении, или в ведении еще одного списка z-порядка и т. Д. MSDN помещает его как (я полагаю, навигационный аспект упоминается, а не визуальное разбиение): 1005 *

Для лучшей производительности приложение, которому необходимо логически разделить главное окно, должно делать это в процедуре окна основного окна, а не с помощью дочерних окон.


Тем не менее, как уже было сказано в комментариях, скорее всего, никто не сможет сказать о производительности или разнице в ресурсах, вызванной несколькими панелями.

0 голосов
/ 23 сентября 2011

Правильный ответ - вариант №3, поэтому, если это проектный подход к проекту, не меняйте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...