Autore Topic: Menu.checked: possibile bug?  (Letto 1851 volte)

Offline jockerfox

  • Gambero
  • **
  • Post: 76
    • Mostra profilo
Menu.checked: possibile bug?
« il: 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?
:-)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #1 il: 30 Agosto 2013, 09:03:46 »
...che per ora io non so cosa significa "sbiffato".  :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #2 il: 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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #3 il: 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
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #4 il: 30 Agosto 2013, 11:37:51 »
 :rotfl: :rotfl: :rotfl:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #5 il: 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
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline jockerfox

  • Gambero
  • **
  • Post: 76
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #6 il: 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!
:-)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #7 il: 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.  :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #8 il: 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 

Offline jockerfox

  • Gambero
  • **
  • Post: 76
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #9 il: 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?  :-[
:-)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Menu.checked: possibile bug?
« Risposta #10 il: 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...