Gambas-it

Gambas3 => Programmazione => Topic aperto da: Franco_da_vc - 11 Marzo 2017, 14:34:04

Titolo: [Risolto] Comportamento pulsanti
Inserito da: Franco_da_vc - 11 Marzo 2017, 14:34:04
C'è un problema che mi sta perseguitando e non riesco a capire come risolverlo.

Ho descritto il form della classe FMain che comprende quattro pulsanti, uno di questI, ButtonIns, stranamente, dopo la partenza del programma, appena esso prende il focus dal mouse si colora in verde, questo però io non lo vorrei!

Per completezza devo aggiunger che ho inserito nel listato due istruzioni
Codice: [Seleziona]
ButtonIns.Background = &00FF00
Una nella Sub ListClienti_Select() e l'altra nella Sub ButtonIns_Click().

Ho visto anche il form, ma anche li non penso ci siano problemi di sorta, o per lo meno....., in effetti l'attributo Background non è settato ad alcun valore, avrei dovuto dargli una scelta?

Ringrazio e saluti.
Titolo: Re:Comportamento pulsanti
Inserito da: Gianluigi - 11 Marzo 2017, 14:56:56
Io se sposto il mouse sul pulsante non si colora, non si colora nemmeno sul mouse down, solo sul mouse up.
Sono d'accordo con Franco è stano.  :-\

Usi QT o GTK?
Titolo: Re:Comportamento pulsanti
Inserito da: Gianluigi - 11 Marzo 2017, 15:06:55
Ho provato anche con GTK ma si comporta allo stesso modo.
Potresti fare una prova e dare un colore diverso sul gotfocus del pulsante e vedere se quando ti ci fermi sopra col mouse prende il colore del gotfocus o il verde.
Titolo: Re:Comportamento pulsanti
Inserito da: Franco_da_vc - 11 Marzo 2017, 15:08:42
Ti ringrazio per la tua celerità,

le due procedure che ho nominato regiscono alla pressione dei vari tasti e, forse mi sono spiegato male, il fenomeno che mi sta procurando problemi avviene invece quando il puntatore si sposta dallo schemo libero all'interno del form senza schiacciare quindi alcun elemento sensibile

Ciao.
Titolo: Re:Comportamento pulsanti
Inserito da: Franco_da_vc - 11 Marzo 2017, 15:19:12
Grazie Gianluigi,

Alura... ho provato descrivere nel form l'attributo Background come magenta, lo strano è che alla partenza il bottone incriminato ha la colorazione che ho fissato in precedenza, ma appena il mouse entra nel form... ci risiamo, il bottone ridiventa verde... boh non riesco proprio a capire!!!  :hard:  :mad:
Titolo: Re:Comportamento pulsanti
Inserito da: Gianluigi - 11 Marzo 2017, 15:29:56
Grazie Gianluigi,

Alura... ma appena il mouse entra nel form... ci risiamo, il bottone ridiventa verde... boh non riesco proprio a capire!!!  :hard:  :mad:

A me pare evidente, il focus alla maschera innesca qualche meccanismo, devi fare un debug accurato, inserisci uno Stop nel gotfocus della maschera (Form_GotFocus()) e prosegui con F8 inserisci Print da tutte le parti (meglio Debug che ti indica la riga)

Buon lavoro  ;D
Titolo: Re:Comportamento pulsanti
Inserito da: Franco_da_vc - 11 Marzo 2017, 15:34:15
Beh!  :-\ il problema è che non so quale parte del listato ne sia responsabile, ti posso postare le due procedure di cui ho parlato prima, spero che possano servire....

Eccole:

Codice: [Seleziona]
Public Sub ListClienti_Select()
'############################################################## Scelta del cliente da elaborare da ListBoxClienti #####

  nCli = ListClienti.index
  VERIFICA_DDT()
  tipoBll = serv$[nCli, 2]
  ButtonIns.Background = &00FF00
  ButtonStamp.Background = &FF0000

End


La seconda (abbastanza simile):

Codice: [Seleziona]
Public Sub ButtonIns_Click()
'########################## Scelta di inserimento dei dati nel mese e cliente selezionato dal bottone INSERIMENTO #####

  If nCli = -1
    Return
  Endif
  swIns = True
  swStm = False
  ButtonIns.Background = &00FF00
  If puntMese <> 0
    ButtonStamp.Background = &HFF0000
  Endif
  ButtonElab.Background = &00FF00

End
Titolo: Re:Comportamento pulsanti
Inserito da: Gianluigi - 11 Marzo 2017, 15:45:55
È chiaro che una delle due procedure viene innescata dal focus della maschera per sapere quale come detto devi mettere dei Debug.
Noi non possiamo fare il debug al posto tuo, tocca a te che hai il codice davanti scorrerlo riga per riga e vedere cosa succede di strano.
Titolo: Re:Comportamento pulsanti
Inserito da: Arco - 11 Marzo 2017, 16:13:35
Imposta dei punti di interruzione in corrispondenza delle righe:
ButtonIns.Background = &00FF00
così vedi in che punto interviene la variazione del colore e poi analizzi il codice collegato.
Titolo: Re:Comportamento pulsanti
Inserito da: Franco_da_vc - 12 Marzo 2017, 15:39:54
Riprendo oggi, perché dopo le vostre ultime due risposte io non ero più presente in casa, tra piccole commissioni da fare ed inviti a cena con amici vari ho potuto riprendere la mia analisi solo nella mattinata ed ho scoperto che non sono le due sub che interferiscono  :nono:, infatti ho seguito i consigli di Gianluigi e Arco ed ho inserito le istruzioni di stop sia all'entrata della procedura che appena prima delle istruzioni ButtonIns.Background ed il risultato è stato che il pulsante a preso la solita colorazione verde, ma il programma non si è fermato.

Quando invece andavo a premere una voce della lista clienti si verificava lo stop che avevo introdotto e quindi la variazione implementata era in ogni caso funzionante.

Naturalmente ora continuerò ad investigare con gli stessi principi appena applicati.

Ringrazio, saluti.
Titolo: Re:Comportamento pulsanti
Inserito da: Arco - 13 Marzo 2017, 11:53:14
Fai una ricerca su tutti i fili presenti nel programma se è presente in qualche altra parte la stinga " ButtonIns.Background = &00FF00 "
Titolo: Re:Comportamento pulsanti
Inserito da: Franco_da_vc - 19 Marzo 2017, 14:54:31
Rieccomi, dopo uno dei miei solit buchi, la verità è che durante la settimana riesco ad essere a casa solo dopo le 19:30 e dopo aver cenato la stanchezza si fa sentire percui.....

Stavo pensando se il comportamento dei pulsanti non sia influenzato dal mio sistema, sto usando la Suse Leap 42.2, proprio ieri ad un certo punto mi è apparso un pop-up con due pulsanti di cui uno (penso quello di default era verde) resta che io non ho fissato alcun default sul mio form, almeno penso.

Arco, non ho inserito altri comandi che setti in verde i pulsanti (veramente un' ultimo ci sarebbe, ma è commentato)

Ciao a tutti
Titolo: Re:Comportamento pulsanti
Inserito da: Franco_da_vc - 19 Marzo 2017, 15:45:52
Finalmente il problema è risolto, non avevo considerato la proprietà NoTabFocus, probabilmente settando i vari oggetti viene inizializzato a false cioè SiTabFocus, mi è bastato settare l'attributo a true ed a diventare verde era il bottone Stampa semplicemente perché era il secondo nella gerarchia del form.
Cosi ho settato tutti gli oggetti come true ed il comportamento ottenuto è stato quello desiderato, vi ringrazio tutti perché verificando i vostri suggerimenti ho potuto restringere il campo sino ad arrivare alla soluzione.

Resta solo una domanda a cui io sbadatamente non ho risposto: il mio form in questo momento e costruito in base al qt4, non so se è bene o male, ma per ora mi pare funzionale.

Ora inseriro il "[Risolto]" davanti all'oggetto e non mi resta che ringraziare.

CiaCiao!!!