Gambas-it

Gambas3 => Segnalazione bug => Topic aperto da: jockerfox - 30 Agosto 2013, 08:55:17

Titolo: Menu.checked: possibile bug?
Inserito da: jockerfox - 30 Agosto 2013, 08:55:17
Prima di dire che sia un bug, chiedo a voi un test.

Create due menù: Menu1 e Menu2.
Menu2 deve essere un sotto menù di Menu1.

Poi create un Button dove se cliccato: Print Menu2.checked

Qua il bug: che sia sbiffato, che non lo sia, sempre True è l'output!
Idem per Menu2.Value: sempre False indipendentemente che sia sbiffato il Menu2!

Voi che ne dite?
Titolo: Re: Menu.checked: possibile bug?
Inserito da: vuott - 30 Agosto 2013, 09:03:46
...che per ora io non so cosa significa "sbiffato".  :-\
Titolo: Re: Menu.checked: possibile bug?
Inserito da: md9327 - 30 Agosto 2013, 11:34:21
E daiiii!!!!

Vuol dire che è il problema gli si presenta, sia che sia checked che NON checked...

"sbiffato" deriva dal verbo latino "sbafare" e dal sanscrito "sbeffare"...  ;D
Titolo: Re: Menu.checked: possibile bug?
Inserito da: vuott - 30 Agosto 2013, 11:36:26

"sbiffato" deriva dal verbo latino "sbafare" e dal sanscrito "sbeffare"...  ;D

...questa dotta spiegazione ora mi ha chiarito la questione.  :P
Titolo: Re: Menu.checked: possibile bug?
Inserito da: md9327 - 30 Agosto 2013, 11:37:51
 :rotfl: :rotfl: :rotfl:
Titolo: Re: Menu.checked: possibile bug?
Inserito da: vuott - 30 Agosto 2013, 12:05:18
Non so se veramente mi ha aiutato la spiegazione glottologica di md9327, dopo aver creato i Menu - come da te suggerito - ho fatto questi test:


1) premere semplicemente su un Button:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

   Print Menu2.Checked, Menu2.Value

End

ottengo in console il risultato:
False  False


2) cliccare sul Menu2 e poi sul Button1; come prima ottengo:
False  False


3) Nella routine dell'evento _Click() sollevato dal Menu2 ho impostato a True la proprietà .Checked del Menu medesimo:
Codice: gambas [Seleziona]

Public Sub Menu2_Click()

   Menu2.Checked = True
   Print Menu2.Checked, Menu2.Value

End

sollevando questo evento dal Menu2 ottengo in console il seguente risultato:
True   False
Titolo: Re: Menu.checked: possibile bug?
Inserito da: jockerfox - 30 Agosto 2013, 13:00:47
Ok. Funziona come a me...
Però non sarebbe corretto.. o meglio: selezionando il menù non è lui che imposta la variabile interna .checked, bensì si deve impostare manualmente...

Vabbè, il problema si aggira tranquillamente, ma non è corretto...

Io lo considero un mezzo Bug!
Titolo: Re: Menu.checked: possibile bug?
Inserito da: vuott - 30 Agosto 2013, 13:31:55
Però non sarebbe corretto.. o meglio: selezionando il menù non è lui che imposta la variabile interna .checked, bensì si deve impostare manualmente...


Sì, capisco, tu preferiresti che fosse Gambas ad impostare direttamente quella proprietà a True.  ...bisognerebbe proporlo a Minisini.  :-\
Titolo: Re: Menu.checked: possibile bug?
Inserito da: md9327 - 30 Agosto 2013, 13:42:31
No, aspè...

La gestione della proprietà "checked" è DEMANDATA all'utente, e non a gambas, in quanto ha come utilità il segnalare l'abiltazione o meno di una certa opzione, diciamo che è una sorta di pulsante, e non un interruttore. Con questo voglio dire che il check può venir impostato con il click dall'utilizzatore, ma può anche farlo l'applicazione in base a certe logiche. La selezione della voce di menu deve comportarsi come tutte le normali voci. L'abiltazione o meno dello sbuffo è demandata al programma, in quanto può utilizzarlo per configurare opzioni interne, oppure anche invertirne il valore in base di variabili interne.
Un esempio potrebbe essere:
Codice: [Seleziona]
Private variabile As Boolean = True
Public Sub _new()
  Menu2.Checked = variabile
End
...
Public Sub Button1_Click() 
   variabile = Menu2.Checked
End 
Titolo: Re: Menu.checked: possibile bug?
Inserito da: jockerfox - 30 Agosto 2013, 15:32:27
@md9327: Please, leggi fino in fondo.. poi capisci  :-*
*************************
Capisco, e ripeto che il "problema" da me evidenziato in realtà non è un problema vero e proprio, ma una non logicità.

Infatti se dalla Gui (cioè l'utente sbuffa il menù) è ovvio, naturale, sensato, e chi più ne ha ne metta che il Menu2.checked deve essere invertito di stato ! Altrimenti l'utente che lo seleziona a fare?
E' una mancanza da parte di Gambas, cioè oserei dire un codice a metà...
Spero di essere stato chiaro.

Poi è ovvio che uno aggira il problema con:
Codice: gambas [Seleziona]
Public Sub Menu2_Click()

  Menu2.Checked = Not Menu2.Checked
  Print Menu2.Checked

End


Come vedi dal codice sopra, è naturale che Menu2.checked sia cambiato di stato, altrimenti che lo clicchi a che fare?

Potresti rispondermi che hai bisogno di sottomenù che non si possa sbiffare..
Bene, allora basta aprire l'editor dei menù e NON selezionare la voce "Checked": vedrai che quando lo clicchi non cambierà di stato !
Capito ora?  :-[
Titolo: Re: Menu.checked: possibile bug?
Inserito da: md9327 - 30 Agosto 2013, 16:02:28
Il tuo ultimo esempio è corretto, lo stato viene da assegnato.
L'impostazione nel menu ti permette solo di visualizzare l'icona accanto alla voce, ma lo stato poi non lo controlla gambas...