Autore Topic: [Risolto]Intercettare selezione di menù  (Letto 4052 volte)

Offline Corvina

  • Gamberetto
  • *
  • Post: 10
    • Mostra profilo
[Risolto]Intercettare selezione di menù
« il: 11 Marzo 2020, 17:57:03 »
Ciao a tutti. Questo è il mio primo post e mi scuso perché si tratta di un post di richiesta aiuto e non uno per dare aiuto. Ma dato che sono neofita di questo linguaggio non poteva forse essere altrimenti. Vado al dunque. Ho creato una semplice form con un menù (fatto con l'editor). Volevo sapere se è possibile intercettare l'evento select del menuItem, no il click solo la selezione. In pratica in basso alla form ho una label che dovrebbe contenere la descrizione estesa del menù che sto via via scorrendo con il mouse (o tasto ovviamente). Idee?
« Ultima modifica: 12 Marzo 2020, 15:15:11 da Corvina »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #1 il: 11 Marzo 2020, 20:13:21 »
 :ciao: Corvina, benvenuto!
Hai ragione non c'è un evento selected!

Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #2 il: 11 Marzo 2020, 21:09:12 »
.... non c'è un evento selected!

...e quindi ?   :devil:
« 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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #3 il: 11 Marzo 2020, 21:21:52 »
.... non c'è un evento selected!

...e quindi ?   :devil:
quindi stavo dando un occhio ad Action per vedere se si poteva trovare una soluzione!
 :P
tu hai idee?
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #4 il: 11 Marzo 2020, 21:48:29 »
quindi stavo dando un occhio ad Action per vedere se si poteva trovare una soluzione!

...Action ?  ???
« 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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #5 il: 12 Marzo 2020, 00:37:20 »
quindi stavo dando un occhio ad Action per vedere se si poteva trovare una soluzione!

...Action ?  ???
Speravo permettesse di fare qualcosa, invece no.
Certo che la documentazione non è così chiara: Returns or sets the action string associated with the control.
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #6 il: 12 Marzo 2020, 00:44:22 »
Certo che la documentazione non è così chiara: Returns or sets the action string associated with the control.
https://www.gambas-it.org/wiki/index.php?title=La_classe_Action
« 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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #7 il: 12 Marzo 2020, 00:56:01 »
Certo che la documentazione non è così chiara: Returns or sets the action string associated with the control.
https://www.gambas-it.org/wiki/index.php?title=La_classe_Action
Ah! Action non c'entra niente!
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #8 il: 12 Marzo 2020, 01:33:28 »
tu hai idee?

" O San Midi eremita,
  per quali funesti luoghi il dolore me conduce ?
  Tetro è il buio opprimente la mia triste vita.
  Poi d'un tratto a me doni, benigno, la tua luce.
"

 sanmidi


Codice: [Seleziona]
Private Menu1 As Menu
Private Menu2 As Menu
Private Menu3 As Menu
Private Menu4 As Menu
Private Label1 As Label
Private tm As Timer


Public Sub Form_Open()
 
  With Menu1 = New Menu(Me) As "Menu1"
    .Caption = "Menu1"
  End With
  With Menu2 = New Menu(Menu1) As "Menu2"
    .Caption = "Menu2"
    .Tag = "Questo è il Menu2 !"
  End With
  With Menu3 = New Menu(Menu1) As "Menu3"
    .Caption = "Menu3"
    .Tag = "Questo è il Menu3 !"
  End With
  With Menu4 = New Menu(Menu1) As "Menu4"
    .Caption = "Menu4"
    .Tag = "Questo è il Menu4 !"
  End With
 
  With Label1 = New Label(Me)
    .W = 200
    .H = 30
    .X = (Me.W * 0.5) - (.W * 0.5)
    .Y = Me.H * 0.6
    .Border = Border.Plain
    .Alignment = Align.Center
    .Foreground = Color.Red
  End With
 
End


Public Sub Menu1_Show()

  With tm = New Timer As "Tempus"
    .Delay = 30
    .Start
  End With

End


Public Sub Tempus_Timer()

  Dim rt2 As New Rect(Me.ScreenX + 10, Me.ScreenY + 26, Me.Font.TextWidth(Menu2.Caption) + 20, Me.Font.TextHeight(Menu2.Caption))
  Dim rt3 As New Rect(Me.ScreenX + 10, Me.ScreenY + 50, Me.Font.TextWidth(Menu3.Caption) + 20, Me.Font.TextHeight(Menu3.Caption))
  Dim rt4 As New Rect(Me.ScreenX + 10, Me.ScreenY + 72, Me.Font.TextWidth(Menu4.Caption) + 20, Me.Font.TextHeight(Menu4.Caption))
 
  Label1.Text = Null
  If rt2.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu2.Tag
  If rt3.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu3.Tag
  If rt4.Contains(Mouse.ScreenX, Mouse.ScreenY) Then Label1.Text = Menu4.Tag
 
End


Public Sub Menu1_Hide()
 
  tm.Stop
 
End


« Ultima modifica: 12 Marzo 2020, 02:09:24 da vuott »
« 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 Corvina

  • Gamberetto
  • *
  • Post: 10
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #9 il: 12 Marzo 2020, 09:47:20 »
Grazie vuott, il tuo codice funziona perfettamente. Purtroppo avevo dimenticato un particolare. Il mio è un popup menù che viene fuori da un menuButton. Ho testato il tuo codice , sostituendo a Me il nome del menuButton, ma i riferimenti risultano un pò sballati. Comunque lavorando un pò sulle coordinate dovrei riuscire. Grazie mille!

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #10 il: 12 Marzo 2020, 09:49:38 »
Citazione
"...Poi d'un tratto a me doni, benigno, la tua luce."
Beato te, qui buio più totale!  :'(
 :ciao:
PS Sono contento per Corvina. San Midi ti ha salvato!
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Corvina

  • Gamberetto
  • *
  • Post: 10
    • Mostra profilo
Re:Intercettare selezione di menù
« Risposta #11 il: 12 Marzo 2020, 10:08:41 »
Citazione
"...Poi d'un tratto a me doni, benigno, la tua luce."
Beato te, qui buio più totale!  :'(
 :ciao:
PS Sono contento per Corvina. San Midi ti ha salvato!

Da oggi San Midi ha una devota in più!

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:[Risolto]Intercettare selezione di menù
« Risposta #12 il: 12 Marzo 2020, 16:03:45 »
Scusate se entro in questa discussione per dissentire sulla soluzione proposta da vuott.
Soluzione peraltro geniale come di consueto.  ;)
La principale peculiarità di Gambas è quella di metterci a disposizione interfacce professionali rapide da costruire, rompere questa peculiarità può portare a malfunzionamenti.
In questo caso il MenuButton non si troverà sempre nella stessa posizione in cui si trova sul nostro desktop.
Altri desktop con altre impostazioni renderanno arduo se non addirittura vano il nostro lavoro.
Se il compito di Corvina è quello di dare informazioni il più possibile estese, io propongo una soluzione tipo quella allegata.

Qui ho solo inserito in un precedente progetto mai completato, la possibilità di mostrare una guida quando ci si ferma col puntatore sul menubutton1 o si clicca sul nome di una finestra nel browser di sinistra.

Naturalmente è solo l'abbozzo di un'idea da sviluppare e perfezionare.

Nota: Il titolo del progetto è ironico ma anche di speranza.

 :ciao: :ciao:
« Ultima modifica: 12 Marzo 2020, 16:05:29 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:[Risolto]Intercettare selezione di menù
« Risposta #13 il: 12 Marzo 2020, 17:40:36 »
... per dissentire sulla soluzione proposta da vuott.
....
In questo caso il MenuButton non si troverà sempre nella stessa posizione in cui si trova sul nostro desktop.
Va considerato che io non ho previsto l'uso dell'Oggetto "MenuButton".
« 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 vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:[Risolto]Intercettare selezione di menù
« Risposta #14 il: 12 Marzo 2020, 17:44:59 »
In questo caso il MenuButton non si troverà sempre nella stessa posizione in cui si trova sul nostro desktop.

...non capisco il perché.   ??? :-X
« 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. »