문제

라자 러스를 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를 다시 설계하려고 시도 할 것을 촉구하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top