TTABSET 탭 순서 ... 디자인 시간보다 런타임이 다릅니다.
-
09-12-2019 - |
문제
라자 러스를 0.9.30.2로 달리고 있습니다.
TPAGEControl이있는 TForm이 있습니다.TPAGEControl 내에서 일련의 TTabsheets가 있습니다.런타임에 TTAB 시트의 순서는 디자인 시간과 다릅니다 (그림 참조).
디자인 시간의 순서는 적어도 폼이 표시되는 첫 번째 시간 동안 런타임에보고 싶은 것입니다.런타임에 주문이 변경되는 이유는 무엇입니까?
해결책
@Tlama는 멀티 라인 뷰에서 Windows 탭 컨트롤이 작동하는 방식과 관련이있는 것과 관련이 있다는 것이 정확합니다. 관찰하는 동작은 선택 방식과 관련이 있습니다. 멀티 라인 탭에 대해 취급됩니다. 탭을 선택하면 시각적 큐가 선택한 탭을 나타내는 탭에서만 맨 아래 행의 탭에서만 작동 할 수 있으므로 항상 하단 행에 표시됩니다.
Constraint가 선택한 탭을 수정할 때 컨트롤이 단순히 탭의 행을 다시 정렬해야합니다. 사용자가 놀라게 혼란스럽게 혼란스럽게합니다. 좋은 UI 디자인이 같은 위치를 변경하지 마십시오.
분명히 일어나는 일은 양식이 처음 표시 될 때 런타임에서 재배치가 일어나고 있으며 이는 어떤 이유로 어떤 이유로 어떤 이유로 디자인 시간 배열로 인해 다른 배치가 발생합니다. 사용자가 행을 선택하여 모든 순서로 행을 정렬 할 수 있다는 점을 감안할 때 행이 표시된 순서에 대해 걱정하지 않아야합니다.
양식이 먼저 표시 될 때 특정 배열을 강제로 설정 한 경우, 이와 같은 코드를 OnCreate
핸들러에 대한 에 표시 할 수 있습니다.
PageControl1.ActivePage := TabSheet9;
PageControl1.ActivePage := TabSheet5;
PageControl1.ActivePage := TabSheet1;
.
UI 디자인을위한 모범 사례는 다중 회선 탭 컨트롤을 피하고 UI를 다시 설계하려고 시도 할 것을 촉구하는 것입니다.