2012-05-30 10 views
6

Questa domanda è molto aperta e probabilmente la risposta a questa domanda dipenderà dal sistema, ma diciamo in media quale è il modo migliore per mostrare una matrice grande (ad esempio 128 elementi) di stati diversi?Un sacco di controlli della GUI che indicano stati diversi

  • Creare un controllo per ogni cella e lasciare GUI affare biblioteca con tutti gli eventi e le cose (in Windows 128 HWND: s)
  • Disegnare l'intera matrice utilizzando primitive grafiche di livello inferiore

C'è una differenza di memoria/prestazioni della CPU a seconda della scelta? Il numero di stati nella mia applicazione è 4 per ogni cella, quindi hanno bisogno di 2 bit ciascuno per rappresentare il loro stato. Ogni cella sarà rappresentata da un'immagine correlata allo stato.

+0

Questa non è una domanda di programmazione, è una domanda di esperienza utente. Potresti chiederlo a ux.stackexchange.com. –

+1

Pensi che l'utente si preoccupi di come ho implementato la stessa funzionalità? – user877329

+0

Apparentemente ho frainteso la domanda. Mie scuse. –

risposta

3

Certo, c'è una differenza. Cercherò di illustrare questo e anche le ipotesi su cui si basa.

  1. costo di un controllo = memoria per controllo + eventi gestori per il controllo + riferimenti per il controllo + un controllo in più in cantiere evento

  2. beneficio del controllo "stretto" per la mappatura delle cellule. Il codice concettualmente semplice e pulito, più facile da pensare.

  3. Costo di mappatura stretta: moltiplica il costo per controllo per il numero di celle.

L'alternativa che sto per suggerire presuppone che il delta di costo tra la mappatura stretto e una mappatura sciolto "un anello" è importante.

alternativa: basta aggiungere un controllo registrato per gli eventi solo all'interno dei limiti dell'intera vista matrice che si presenta, ha un pezzo di codice per determinare la posizione del puntatore e quale cella corrisponde e quindi solo gli aggiornamenti quella cella a seconda dell'interazione dell'utente lì.

I vantaggi di questo sono i costi marginali di un solo controllo aggiuntivo ma il vantaggio di gestire le interazioni per l'intera matrice. Il vantaggio marginale o questo controllo è molto più alto rispetto a un singolo controllo stretto. Aldo, il costo di implementazione è piccolo in quanto è un modello comune e non troppo difficile.

Buona fortuna!

Problemi correlati