SOFTWARE > Linguaggi di programmazione e scripting

Interfacce e comportamento pulsanti

<< < (2/10) > >>

Allanon:
Quindi got focus e lost focus sono scatenati solo dalla tastiera? Quando il pulsante viene attivato da tastiera genera un evento click?

Scusa se ti tartasso ma sono un po' a digiuno di eventi Windows :-)

TheKaneB:
Sono scatenati dal focus :D

Quindi sia da tastiera che da mouse.
Non deve spaventarti lo scatenamento simultaneo di più eventi. Anzi, è bene che gli eventi complessi siano suddivisi in più sottoeventi semplici.

Allanon:
No no, non mi spaventa affatto è che non ho ben chiara la differenza fra get focus e mouse over, a meno che la differenza stia solo nel fatto che il mouse over sia generato solo ed esclusivamente del mouse ma per il resto siano identici :-)

TheKaneB:
mouse over ti dice SOLO che il puntatore è sopra il pulsante, quindi è un evento grafico.

got focus, invece, ti dice che il pulsante corrente è interessato (cioè è un target) a ricevere gli eventi correnti provenienti dall'utente. Tali eventi sono quelli di scrolling, click, gli eventi della tastiera, ecc...

Guarda ad esempio Google Chrome. Quando invii un messaggio su questo forum, noterai che il riquadro selezionato ha un bordo arancione, e tale riquadro cattura gli eventi dalla tastiera. Puoi dare il focus ad un altro riquadro cliccandoci o premendo ripetutamente il tasto Tab o Shift + Tab. Il focus dice quale elemento riceve gli eventi dell'utente, mentre il mouse over è limitato all'interazione con il mouse, ed è solo un evento grafico, utile ad esempio per far cambiare un colore o far spuntare un tooltip.

La tua libreria quindi dovrà sapere in ogni momento qual è l'oggetto che detiene il focus, per inviargli correttamente gli eventi, e tale oggetto dovrà essere avvisato quando acquista o perde tale focus.

Allanon:
Ok, ok, tutto chiaro adesso :-)
E' che sto caldo mi rallenta la "brocca", grazie per la spiegazione  :)

Navigazione

[0] Indice dei post

[#] Pagina successiva

[*] Pagina precedente

Vai alla versione completa