Domanda

Sto eseguendo Lazarus 0.9.30.2.

Ho un tform su cui c'è un tpagecontrol.All'interno del TPageControl c'è una serie di TTABsheets.In runtime, l'ordine dei Ttabsheet differisce dal tempo di progettazione (vedi immagine).

Inserire la descrizione dell'immagine qui

L'ordine nel tempo di progettazione è ciò che voglio vedere a runtime, almeno per la prima volta viene visualizzato il modulo.Perché l'ordine cambia in tempo di esecuzione ed è un modo per controllarlo?

È stato utile?

Soluzione

@tlama è corretto che questo è legato al modo in cui il controllo della scheda Windows si comporta quando è in vista multi-line. Il comportamento che stai osservando è correlato al modo in cui la selezione è gestita per le schede multi-line. Quando si seleziona una scheda viene sempre visualizzata nella riga in basso perché il cue visivo per indicare quale scheda è selezionata può funzionare solo per le schede nella riga inferiore.

Dato che il vincolo il controllo deve semplicemente riorganizzare le righe delle schede mentre modifica la scheda selezionata. È incredibilmente confuso per l'utente. Buona Design UI Non ha mai elementi UI Modifica di posizione come questa.

Chiaramente ciò che sta accadendo qui è che il riarrangiamento sta accadendo in fase di esecuzione quando viene mostrato il modulo per la prima volta e per qualsiasi motivo, questo è il risultato di una disposizione diversa dalla disposizione del tempo di progettazione. Dato che l'utente può organizzare le righe in qualsiasi ordine solo selezionandole non sono sicuro che dovresti preoccuparti di quale ordine venga visualizzato le righe.

Se sei morto impostato sulla forzatura di una particolare disposizione quando il modulo viene prima visualizzato è possibile aggiungere il codice come questo a un gestore di generazione di OnCreate per il modulo:

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

Best Practice for Ui Design è quello di evitare i controlli della scheda multilinea e ti invito a tentare di ri-progettare il tuo interfaccia utente in questo modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top