Gambas-it

Gambas3 => Programmazione => Topic aperto da: kicco - 19 Agosto 2020, 13:53:15

Titolo: È corretto questo comportamento?
Inserito da: kicco - 19 Agosto 2020, 13:53:15
 :ciao:
Ho allegato un piccolo programmino che una volta avviato funziona banalmente incrementando una variabile e stampandola a terminale attendendo con un Wait.
Se attivo il menu col tasto destro il ciclo si blocca per poi riprendere quando lo abbandono.
...è corretto?
È una questione di focus?
 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 14:13:20

Se attivo il menu col tasto destro il ciclo si blocca per poi riprendere quando lo abbandono.
...è corretto?
È una questione di focus?


Si è il comportamento corretto, succede anche se apri una finestra modale, questo è dovuto a Wait che permette l'avvio di altri eventi se usassi Sleep impediresti l'avvio del menu ecc.

No, non è una questione di focus.

 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 19 Agosto 2020, 14:21:31

Se attivo il menu col tasto destro il ciclo si blocca per poi riprendere quando lo abbandono.
...è corretto?
È una questione di focus?


Si è il comportamento corretto, succede anche se apri una finestra modale, questo è dovuto a Wait che permette l'avvio di altri eventi se usassi Sleep impediresti l'avvio del menu ecc.

 :ciao:
Grazie Gianluigi, che WAIT permetta l'avvio di altri eventi lo sapevo, non mi aspettavo che si fermasse ad attenderne il termine...
Sleep preferisco non usarlo perchè rende cieco agli eventi il programma, appunto!
Secondo te può esistere un modo di aggirare il problema o perdo solo tempo nella ricerca?
 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 14:24:48

Secondo te può esistere un modo di aggirare il problema o perdo solo tempo nella ricerca?
 :ciao:

Dipende, cosa vorresti fare? Qual'è il problema da risolvere?

 :ciao:

Ad esempio potresti usare il menu normale in barra che non interrompe come invece fanno i popup
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 19 Agosto 2020, 14:30:42

Secondo te può esistere un modo di aggirare il problema o perdo solo tempo nella ricerca?
 :ciao:

Dipende, cosa vorresti fare? Qual'è il problema da risolvere?

 :ciao:
Mi piacerebbe che quando viene richiamato il menu, il ciclo attivato dal button1 continuasse a correre senza interruzioni.  :-\
 :ciao: :ciao:

Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 14:36:21

Secondo te può esistere un modo di aggirare il problema o perdo solo tempo nella ricerca?
 :ciao:

Dipende, cosa vorresti fare? Qual'è il problema da risolvere?

 :ciao:
Mi piacerebbe che quando viene richiamato il menu, il ciclo attivato dal button1 continuasse a correre senza interruzioni.  :-\
 :ciao: :ciao:

 :D e già, magari potresti vedere se con il pulsante destro del mouse aprissi una normale finestra che simula un menu con una griglia o una listbox...
Che te ne pare?

 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 14:50:17
Questo sembra funzionare, Vedi allegato

 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 19 Agosto 2020, 14:53:55
Questo sembra funzionare, Vedi allegato

 :ciao:
Sei un missile!
Grazie direi che è fantastica!
 :-*
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 15:07:00

Grazie Gianluigi, che WAIT permetta l'avvio di altri eventi lo sapevo, non mi aspettavo che si fermasse ad attenderne il termine...


No, non è così Wait non aspetta che finisca un altro codice sollevato a meno che questo non sia preposto al blocco di ogni altra attività come nel caso delle finestre popup.

Altrimenti il finto popup non funzionerebbe
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 19 Agosto 2020, 18:33:53

Grazie Gianluigi, che WAIT permetta l'avvio di altri eventi lo sapevo, non mi aspettavo che si fermasse ad attenderne il termine...


No, non è così Wait non aspetta che finisca un altro codice sollevato a meno che questo non sia preposto al blocco di ogni altra attività come nel caso delle finestre popup.

Altrimenti il finto popup non funzionerebbe
OK!!
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 20:01:51
OK!!

 :D

Come hai detto? Non ho sentito  :P

 :-*

Chissà a suon di baci finiremo per fare una fuga d'amore...  ;D
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 19 Agosto 2020, 21:15:55
OK!!

 :D

Come hai detto? Non ho sentito  :P

 :-*

.. e dove mi porti?
Tra i container   e database  fare SELECT tra le farfalle da mane a sera?
 :rolleyes: :rolleyes: :rolleyes:
 :P

Chissà a suon di baci finiremo per fare una fuga d'amore...  ;D
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 22:34:27
.. e dove mi porti?
Tra i container   e database  fare SELECT tra le farfalle da mane a sera?

Romantico, non trovi?  ;D
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 19 Agosto 2020, 23:11:19
Romantico, non trovi?  ;D

(https://thumbs.gfycat.com/NarrowFatherlyAmethystgemclam-size_restricted.gif)
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 19 Agosto 2020, 23:28:33
 :D

vuott piuttosto che incoraggiare il nostro idillio dovresti ispirare le nostre deboli menti col tuo sommo sapere.


Grazie Gianluigi, che WAIT permetta l'avvio di altri eventi lo sapevo, non mi aspettavo che si fermasse ad attenderne il termine...


No, non è così Wait non aspetta che finisca un altro codice sollevato a meno che questo non sia preposto al blocco di ogni altra attività come nel caso delle finestre popup.

Altrimenti il finto popup non funzionerebbe

se faccio questa prova:
Codice: [Seleziona]
Public Sub Button1_Click()

    For b As Byte = 1 To 20
        Print b
        Wait 1
    Next

End

Public Sub Form_MouseDown()

    If Mouse.Right Then
        For c As Byte = 21 To 40
            Print c
            Wait 1
        Next
    Endif

End

In una finestra con un button, sembrerebbe la mia affermazione essere una "boiata pazzesca!" e che kicco avesse ragione.

Oh sapiente illuminaci!

Non troppo però che non vorrei ci disturbasse il sonno  :sleepy:

 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 20 Agosto 2020, 02:35:13
vuott piuttosto che incoraggiare il nostro idillio dovresti ispirare le nostre deboli menti col tuo sommo sapere.
...
Oh sapiente illuminaci!

...ma perché, gentili Signori, perché dovrei tediare il mio animo con quelle sciocchezze ?

Ancorché di altro argomento, posso, semmai, deliziarvi con l'ultima pagina della Wiki che ho scritto:
    https://www.gambas-it.org/wiki/index.php?title=Ottenere_un_file_Midi_da_un_file_XMI_con_le_funzioni_esterne_del_API_di_WildMidi

(https://thumbs.gfycat.com/LargeCompleteAlligatorsnappingturtle-size_restricted.gif)
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 08:39:10
Ho provato il tuo codice Gianluigi e sembrerebbe effettivamente dimostrare la mia affermazione:
Citazione
... che WAIT permetta l'avvio di altri eventi lo sapevo, non mi aspettavo che si fermasse ad attenderne il termine...

Ma consideravo in generale:
è corretto che l'apertura di un menu arresti temporaneamente l'esecuzione di un programma?
Potrei scorrere le voci del menu solo per curiosità o peggio, come nel mio caso, lasciare aperta la finestra del menu perchè ho dimenticato di cliccare in un altro punto e il programma rimane lì fermo?!  :-\
Sto cercando di capire quando invece è giusto che accada, ma:
...nel bel mezzo dell'idillio tra le farfalle... :-*

Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 09:42:21
Citazione
è corretto che l'apertura di un menu arresti temporaneamente l'esecuzione di un programma?
Ho dato un occhio in giro:
Thunderbird riceve la posta anche se il menu è aperto
Firefox riceve nuovi dati se il menu è aperto
Audacity elabora file musicale anche se il menu è aperto
 :-\
C'è qualcosa che mi sfugge?  Le farfalle mi confondono?  :P
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 20 Agosto 2020, 10:35:32
vuott, fila nell'angolo, si quello dove c'è già Golia, e vergognati!
Monellacci indisciplinati, cosa ne dite di un minuto in ginocchio sui ceci?

kicco mi spieghi come fai a far partire un loop in quei programmi  :-\
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 10:37:15
Altra scoperta:
L'arresto temporaneo del programma avviene solo usando il Popup Menu.Usando invece il menu della barra dei comandi invece il programma non si arresta!  :'(
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 10:42:59

kicco mi spieghi come fai a far partire un loop in quei programmi  :-\
Non posso far partire un loop questo  è chiaro, stavo valutando solo il comportamento grossolanamente.
Volevo essere sicuro che l'apertura di un menu in genere non producesse quell'effetto. Che non fosse uno standar del quale non mi fossi mai accorto!
D'accordo vedere le farfalle ma niente sostanze strane... :P
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 20 Agosto 2020, 10:56:03
...
D'accordo vedere le farfalle ma niente sostanze strane... :P

mmmh... prova il progetto allegato  :P
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 13:16:04
mmmh... prova il progetto allegato  :P
Ma a parte le campane (il messaggio l'ho capito!  :mad:) cosa dovrei scoprire?
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 20 Agosto 2020, 13:36:13
mmmh... prova il progetto allegato  :P
Ma a parte le campane (il messaggio l'ho capito!  :mad:) cosa dovrei scoprire?

così è più chiaro?  :violent:
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 14:51:04
Mi stai dicendo di usare dei timer anziché WAIT?
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 20 Agosto 2020, 15:23:57
Citazione
è corretto che l'apertura di un menu arresti temporaneamente l'esecuzione di un programma?
Ho dato un occhio in giro:
Thunderbird riceve la posta anche se il menu è aperto
Firefox riceve nuovi dati se il menu è aperto
Audacity elabora file musicale anche se il menu è aperto
 :-\
C'è qualcosa che mi sfugge?  Le farfalle mi confondono?  :P

Sei tu che hai fatto questa domanda, io sto solo cercando di risponderti.

Altra scoperta:
L'arresto temporaneo del programma avviene solo usando il Popup Menu.Usando invece il menu della barra dei comandi invece il programma non si arresta!  :'(

Ma io te lo avevo già detto qui
https://www.gambas-it.org/smf/index.php?topic=7943.msg48836#msg48836

e sempre qui ti avevo chiesto che cosa volevi fare...

Se tu vuoi a tutti i costi usare un loop cosa devo risponderti?

Credo che comunque tu ora abbia tutti gli elementi per poter decidere cosa fare.

 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 15:45:41
Hai ragione, ma non riesco a convincermi che abbiano due modalità diverse di funzionamento!
Purtroppo ho scelto come criterio del programma che i menu fossero Popup e adesso sono nei guai.
Usare i timer, ammesso che si possa, mi sconvolge radicalmente il progetto.
Tu mi dirai ..azi tuoi!  :hard:
Ma è un criterio universale che i Popup blocchino i programmi?
Intanto vado a piangere in un angolo (non quello ci sono Golia e Vuott!)  :P
 :'( :'( :'(
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 20 Agosto 2020, 16:59:00
vuott, fila nell'angolo, si quello dove c'è già Golia, e vergognati!
Monellacci indisciplinati, cosa ne dite di un minuto in ginocchio sui ceci?

Il mio rango non lo permette: godo del principio medioevale della "Immunitas Moderatoris" .

Pertanto non possiamo, non vogliamo, non dobbiamo.
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 20 Agosto 2020, 17:08:07
Intanto vado a piangere in un angolo

In quello già ti relegato io, perché hai abbandonato gli studi sul Componente gb.map !   >:(
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 17:30:59
 
Intanto vado a piangere in un angolo

In quello già ti relegato io, perché hai abbandonato gli studi sul Componente gb.map !   >:(
Qua io vivo una tragedia e tu mi parli di gb.map?  Insensibile!!  :'( :'( :'( :'(
Meno male che godi della  "Immunitas Moderatoris"...  :violent:
 
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 20 Agosto 2020, 17:42:45
Lo sapevo: mi ha mandato un vaff.

(https://laragazzaapprossimativa.files.wordpress.com/2017/12/5-frasi-da-non-pronunciare-davanti-a-una-donna.gif)
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 18:57:17
  :) :) :) :) :) :) :) :) :) :) :) :) :) :)
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 20 Agosto 2020, 19:37:36

Ma è un criterio universale che i Popup blocchino i programmi?


Mettiti davanti allo specchio.
Guardati con intensità e poi poniti questa domanda:
"È il menu popup che blocca lo svolgimento di un programma?"
Ora, sempre con intensità, ma con atteggiamento più mondano datti questa risposta.
"No, non è il menu popup è il ciclo o loop se preferisce l'inglesismo."

cosa ne pensi potrebbe giovare  ;D

 :ciao:
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 20 Agosto 2020, 19:55:16

Ma è un criterio universale che i Popup blocchino i programmi?


Mettiti davanti allo specchio.
Guardati con intensità e poi poniti questa domanda:
"È il menu popup che blocca lo svolgimento di un programma?"
Ora, sempre con intensità, ma con atteggiamento più mondano datti questa risposta.
"No, non è il menu popup è il ciclo o loop se preferisce l'inglesismo."

cosa ne pensi potrebbe giovare  ;D

 :ciao:
So' de coccio, ma perchè allora non il menu della barra?
Ho cercato nella wiki e non ho trovato menzione del fatto che se usi il popupmenu il programma debba comportarsi diversamente
http://gambaswiki.org/wiki/comp/gb.qt4/control/.menu (http://gambaswiki.org/wiki/comp/gb.qt4/control/.menu)
http://gambaswiki.org/wiki/comp/gb.qt4/control/popupmenu (http://gambaswiki.org/wiki/comp/gb.qt4/control/popupmenu)
Boh, domani mi rileggo tutto quello che abbiamo scritto in questo topic perchè vedo che rifaccio domande che ho già fatto e alle quali avete già risposto!
Sono anch'io entrato in un ciclo o loop, se preferisci l'inglesismo.(!)
Qualcuno usi un popupmenu, per favore, così mi fermo.  :P
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 21 Agosto 2020, 01:15:39

So' de coccio, ma perchè allora non il menu della barra?


OK hai vinto, gliel'ho chiesto:
https://lists.gambas-basic.org/pipermail/user/2020-August/069894.html

 :P :P :P :P :P :P :P :P :P

Non ne posso più vado a dormire  :sleepy:
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 21 Agosto 2020, 09:24:12

So' de coccio, ma perchè allora non il menu della barra?


OK hai vinto, gliel'ho chiesto:
https://lists.gambas-basic.org/pipermail/user/2020-August/069894.html

 :P

Non ne posso più vado a dormire  :sleepy:

 :yeah:
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 21 Agosto 2020, 09:47:20

 :yeah:

 :D ok, ma la sostanza non cambia, devi usare un finto popup oppure devi rinunciare a Wait.
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 21 Agosto 2020, 11:01:55
:D ok, ma la sostanza non cambia, devi usare un finto popup oppure devi rinunciare a Wait.
Voglio vedere se è possibile chiudere il Popup dopo un certo intervallo di tempo!
 :coder:
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 21 Agosto 2020, 11:59:11
Risposta del grande capo Misini:
Citazione
If you use the Popup() method of a menu, or the ShowPopup() method on a
window, a new event loop is run.

Anyway, you should assume that the behaviour of popup menus is undefined
when calling the WAIT instruction.
E fine della storia (qui in Italia)! Anche se questa cosa andrebbe documentata meglio!!!!! ( ma è una lunga storia...) :)
Grazie Gianluigi!
Risolverò utilizzando un timer che a scadenza adeguata (nel mio caso credo 5-10minuti) avvia il metodo Close del menu.
Codice: [Seleziona]
Menu1.close
Per evitare che l'utente lasci aperto all'infinito il menu e blocchi il ciclo (con Wait all'interno) principale del programma.
È un evento poco probabile, ma devo prevederlo!
 :) :) :)
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 21 Agosto 2020, 12:19:30
...
Risolverò utilizzando un timer che a scadenza adeguata (nel mio caso credo 5-10minuti) avvia il metodo Close del menu.
Codice: [Seleziona]
Menu1.close
Per evitare che l'utente lasci aperto all'infinito il menu e blocchi il ciclo (con Wait all'interno) principale del programma.
È un evento poco probabile, ma devo prevederlo!
 :) :) :)
Penso che un minuto sia sufficiente, per tanto che uno sia riflessivo davanti a un menu, più di un minuto è una perversione  ;D
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 21 Agosto 2020, 12:43:03
...per tanto che uno sia riflessivo davanti a un menu, più di un minuto è una perversione  ;D

Un po' come farsi domande di programmazione dinnanzi ad uno specchio.  :D
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 21 Agosto 2020, 12:56:40
...per tanto che uno sia riflessivo davanti a un menu, più di un minuto è una perversione  ;D

Un po' come farsi domande di programmazione dinnanzi ad uno specchio.  :D
... é che gli specchi dovrebbero riflettere di più prima di rispondere!  :P
Titolo: Re:È corretto questo comportamento?
Inserito da: Gianluigi - 21 Agosto 2020, 13:34:14
 :rotfl:

Un po' come farsi domande di programmazione dinnanzi ad uno specchio.  :D

... é che gli specchi dovrebbero riflettere di più prima di rispondere!  :P

vuott, kicco sapete cosa siete?

Siete...

... va beh non ve lo dico   :P
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 21 Agosto 2020, 15:13:29
vuott, kicco sapete cosa siete?

Siete...

Oppongo la mia "Immunitas Moderatoris" !
Titolo: Re:È corretto questo comportamento?
Inserito da: kicco - 21 Agosto 2020, 20:56:08

vuott, kicco sapete cosa siete?

Siete...

io non posso opporre nulla!  :-\

Chiedo solo protezione a  sanmidi
Titolo: Re:È corretto questo comportamento?
Inserito da: vuott - 21 Agosto 2020, 23:58:33
Chiedo solo protezione a  sanmidi
Hai detto "niente" ?!