Почему TPanel не показывает правильный кадр / рамку в Delphi XE? - PullRequest
1 голос
/ 06 августа 2011

Tpanel не отображает верхнюю и левую границу в Delphi XE / Win 7. Почему?

Пример (я только что сбросил несколько TPanel из паллета в мою форму внутри TTabSheet):

enter image description here

Как сделать так, чтобы он выглядел как оригинальный элемент управления Delphi 7 (со всеми 4 границами), не меняя его свойства каждый раз, когда я помещаю его в форму?

Ответы [ 2 ]

3 голосов
/ 06 августа 2011

Установите ParentBackground на false.

Синяя панель в зеленой форме http://privat.rejbrand.se/panelborder.png

Выше синяя панель в зеленой форме (ParentBackground = false).Обратите внимание на белую верхнюю левую границу и серую нижнюю правую границу.Конечно, если и форма, и панель белые, белая рамка станет невидимой.

2 голосов
/ 06 августа 2011

Вот как это должно быть нарисовано. Эффект 3D выглядит так, как будто источник света сияет сверху слева. Вот почему нижний и правый края находятся в тени, отбрасываемой поднятой панелью.


Что касается обновленного вопроса, похоже, вы хотите, чтобы ваше приложение работало без тем. Самый простой способ - снять флажок «Включить темы времени выполнения» на панели приложений в настройках проекта.

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

...