Pregunta

Estoy ejecutando Lázaro 0.9.30.2.

Tengo un TForm en el que hay un TPAGecontrol.Dentro del Tpagecontrol hay una serie de hojas de ttabs.En tiempo de ejecución, el orden de las hojas de ttabshabs difiere del tiempo de diseño (vea la imagen).

ingrese la descripción de la imagen aquí

El pedido en el tiempo de diseño es lo que quiero ver en tiempo de ejecución, al menos por primera vez, se muestra el formulario.¿Por qué cambia la orden en el tiempo de ejecución y hay una manera de controlar esto?

¿Fue útil?

Solución

@tlama es correcto que esto esté relacionado con la forma en que se comporta el control de la pestaña de Windows cuando se comporta en la vista de múltiples líneas. El comportamiento que está observando está relacionado con la selección de la forma en que se maneja para las pestañas de múltiples líneas. Cuando selecciona una pestaña, siempre se muestra en la fila inferior porque la señal visual para indicar qué pestaña se selecciona solo puede funcionar realmente para las pestañas en la fila inferior.

Dada esa restricción, el control simplemente tiene que reorganizar filas de pestañas a medida que modifica la pestaña seleccionada. Es asombrosamente conforme al usuario. El diseño de UI de buen interfaz de usuario nunca tiene elementos de interfaz de usuario que cambian la posición de esta manera.

Claramente lo que está sucediendo aquí es que la reordenación está sucediendo en tiempo de ejecución cuando se muestra primero el formulario y por la razón por la cual esto está resultando en una disposición diferente de la disposición del tiempo de diseño. Dado que el usuario puede organizar las filas en cualquier pedido, simplemente seleccionándolas, no estoy seguro de que deba preocuparse por qué orden aparezcan las filas.

Si está completamente establecido en la obligación de un acuerdo en particular cuando el formulario primero muestra que puede agregar código como este a un manejador de OnCreate para el formulario:

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

Las mejores prácticas para el diseño de la interfaz de usuario deben evitar los controles de la pestaña de múltiples líneas y le insto a que intente redistribuir su UI de esa manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top