Порядок вкладки TTabSet… Во время выполнения он отличается от времени разработки.

StackOverflow https://stackoverflow.com//questions/9617283

Вопрос

Я использую Lazarus 0.9.30.2.

У меня есть TForm, на котором есть TPageControl.Внутри TPageControl есть серия TTabSheets.Во время выполнения порядок TTabSheets отличается от порядка разработки (см. рисунок).

enter image description here

Порядок во время разработки — это то, что я хочу видеть во время выполнения, по крайней мере, в первый раз, когда форма отображается.Почему порядок меняется во время выполнения и есть ли способ это контролировать?

Это было полезно?

Решение

@TLama прав, что это связано с тем, как ведет себя элемент управления вкладками Windows в многострочном представлении.Поведение, которое вы наблюдаете, связано с тем, как осуществляется выбор для многострочных вкладок.Когда вы выбираете вкладку, она всегда отображается в нижнем ряду, поскольку визуальный сигнал, указывающий, какая вкладка выбрана, может работать только для вкладок в нижнем ряду.

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

Очевидно, что здесь происходит то, что перестановка происходит во время выполнения, когда форма впервые отображается, и по какой-то причине это приводит к другому расположению, отличному от расположения во время разработки.Учитывая, что пользователь может расположить строки в любом порядке, просто выбрав их, я не уверен, что вам стоит беспокоиться о том, в каком порядке отображаются строки.

Если вы не уверены в том, чтобы принудительно использовать определенное расположение, когда форма впервые отображается, вы можете добавить такой код в OnCreate обработчик формы:

PageControl1.ActivePage := TabSheet9;
PageControl1.ActivePage := TabSheet5;
PageControl1.ActivePage := TabSheet1;

Лучшая практика проектирования пользовательского интерфейса — избегать многострочных элементов управления вкладками, и я призываю вас попытаться перепроектировать свой пользовательский интерфейс таким образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top