Gambas-it

Gambas3 => Programmazione => Topic aperto da: Franco_da_vc - 07 Marzo 2020, 14:45:45

Titolo: [Risolto] Approfondimenti sui controlli keypress e lostfocus
Inserito da: Franco_da_vc - 07 Marzo 2020, 14:45:45
Ciao amici di forum Gambas,

Sto rivedendo il codice che ho scritto per il mio programma bolle e siccome sono proliferate le diversità tra un fornitore e l'altro ho dovuto aggiungere alcune alcune classi TextBox da far usare in più per un fornitore, questo mi ha incasinato molto nei rimandi da una classe all'altra essendo diverso per i vari fornitori.

Analizzando il codice passo a passo mi sono accorto che l'uscita da una classe con l'evento KeyPress  questa mi va inevitabilmente a finire nell'evento LostFocus anche esso descritto.

Nel mio progetto però avevo descritto i due eventi per poter uscire dalle classi sia con i tasti "invio" e "Tab" che direttamente in grafica cliccando al di fuori dell'oggetto associato alla classe; questi due eventi sembra però che interferisco tra di essi.

Che ne dite? Avreste dei consigli da darmi?

Ho poi un altro dubbio da esporvi, ma questo ve lo scrivero in un altro topic.

Ringrazio tutti per il vostro aiuto!

Bye by AFo
Titolo: Re:Approfndimenti sui controlli keypress e lostfocus
Inserito da: Gianluigi - 07 Marzo 2020, 16:21:18
Tutte le volte che premiamo un tasto solleviamo l'evento KeyPress() anche con Tab (Ctrl o Alt ecc.) quindi devi tenerne conto.
Non so come hai organizzato il tutto forse potresti usare dei booleani a livello di classe per evitare il ripetersi del codice, però devi essere sicuro di poterli ripristinare.
Per esempio:
Codice: [Seleziona]
Private $bTextBox1 As Boolean

Public Sub TextBox1_KeyPress()

  If $bTextBox1 Then Return
  Print "TextBox1_KeyPress()"
  $bTextBox1 = True

End

Public Sub TextBox1_LostFocus()

  $bTextBox1 = False

End

La cosa migliore è evitare di far fare la stessa cosa a due eventi diversi o a un evento che si può ripetere accidentalmente.

 :ciao:
Titolo: Re:Approfondimenti sui controlli keypress e lostfocus
Inserito da: Franco_da_vc - 14 Marzo 2020, 12:02:47
E' vero Gianluigi,

I due eventi interferivano, ma sto pensando che il lostfocus sia anche inutile, dovrò sperimentare un po di più nel mio prototipo, comunque ora daro inizio al secondo topic perché ho un altro dubbio sul mio codice.

Grazie