Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: g.grandi - 22 Marzo 2013, 17:30:33

Titolo: RISOLTORichiamare evento di un gruppo pass.do l'elemento desiderato dello stesso
Inserito da: g.grandi - 22 Marzo 2013, 17:30:33
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

Titolo: Re: Richiamare evento di un gruppo passando l'elemento desiderato dello stesso
Inserito da: vuott - 22 Marzo 2013, 18:11:31
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
Titolo: Re: Richiamare evento di un gruppo passando l'elemento desiderato dello stesso
Inserito da: sotema - 22 Marzo 2013, 19:18:11
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

Titolo: Re: Richiamare evento di un gruppo passando l'elemento desiderato dello stesso
Inserito da: vuott - 22 Marzo 2013, 20:18:07
Senza usare la variabile globale:


Meglio ancora !    :coder:
Titolo: Re: Richiamare evento di un gruppo passando l'elemento desiderato dello stesso
Inserito da: g.grandi - 22 Marzo 2013, 22:42:02

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