Autore Topic: RISOLTORichiamare evento di un gruppo pass.do l'elemento desiderato dello stesso  (Letto 848 volte)

Offline g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo
Salve a tutti.
Ho un problema che non riesco a risolvere a riguardo di un gruppo di controlli. Ho creato una semplice form con tre pulsanti (rosso, verde e giallo) associati al gruppo MyButtons; e un Button1 che non fa parte di tale gruppo. Alla pressione di uno qualsiasi dei button del gruppo, visualizzo in console tramite LAST il colore del pulsante. Ora, vorrei sfruttare l'evento Click del button1 indipendente, per richiamare da codice la sub MyButtons_Click e poterle passare uno dei tre pulsanti a mio piacere. Purtroppo non ho ancora capito se sia possibile farlo e se sì, come.
Queste sono le poche linee di codice con il commento di quanto vorrei ottenere.

Codice: [Seleziona]
' Gambas class file

PUBLIC SUB MyButtons_Click()

  PRINT LAST.Text

END



PUBLIC SUB Button1_Click()

  'Qui vorrei richiamare la MyButton_Click()  passando
  'il pulsante che mi interessa; come se fosse possibile, ad
  'esempio, assegnare alla LAST il button VerdeBtn prima di
  'richiamare MyButton_Click()
  '

END

Grazie.
Giovanni Grandi

« Ultima modifica: 22 Marzo 2013, 22:46:48 da g.grandi »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.705
  • Ne mors quidem nos iunget
    • Mostra profilo
A prima vista, mi viene in mente che sarai costretto ad usare una variabile globale da includere in entrambe le routine.  :-\

Una cosa di 'sto genere:
Codice: gambas [Seleziona]

Private a As String


Public Sub MyButtons_Click()

    Print a

End


Public Sub Button1_Click()

    a = VerdeBtn.Name

    MyButton_Click()

End
« Ultima modifica: 22 Marzo 2013, 18:16:17 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 sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Senza usare la variabile globale:

Codice: gambas [Seleziona]
Public Sub MyButtons_Click(Optional obj As Object = Null)
  If IsNull(obj) Then
    Print Last.Text
    Return
  Endif
  Print obj.Name
End

Public Sub Button1_Click()
Dim ob As Object = verde
  MyButtons_Click(ob)
End

L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.705
  • Ne mors quidem nos iunget
    • Mostra profilo
Senza usare la variabile globale:


Meglio ancora !    :coder:
« 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 g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo

Pensavo vi fosse un modo semplice, che non avevo ancora scoperto, per ottenere il risultato ma da quanto vedo, è un ragionamento un po più contorto. Grazie ad entrambi per l'aiuto.

A presto.
Giovanni Grandi