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

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

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

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

1 ответ

Решение

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

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

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

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

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

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

Другие вопросы по тегам