Gambas-it

Gambas3 => Programmazione => Topic aperto da: baldi96 - 10 Febbraio 2013, 19:49:23

Titolo: [RISOLTO]ricavare ogetto dall'evento
Inserito da: baldi96 - 10 Febbraio 2013, 19:49:23
Scusate l ignoranza ma è poco che uso gambas e non trovo niente nella documentazione su questoargomento:
Ho creato una piccola interfaccia e ho messo un pulsante che mi crea altri pulsanti in base a quanti sono i file sulla scrivania(ho usato for). Nel for ogni pulsante creato lo ho assegnato con object.attach a un evento click. Ora vorrei che nell evento si ricavasse quali di questi pulsanti creati è stato cliccato. Esiste un istruzione x ció?in vb.net lo favevo facilmente.scusate ancora,i'm newbie! ???
Titolo: Re: ricavare ogetto dall'evento
Inserito da: sotema - 10 Febbraio 2013, 21:22:31
Per ottenere informazioni sull'oggetto che ha scatenato un determinato evento puoi usare LAST che, come dice il nome, ritorna il riferimento all'oggetto che ha scatenato l'ultimo evento. Per fare ciò devi assegnare ad ogni oggetto creato, nel tuo caso i pulsanti, un osservatore che intercetta gli eventi scatenati da esso. Ad ogni osservatore puoi associare quanti oggetti vuoi.
Nel tuo caso potresti:

Codice: gambas [Seleziona]
Public Sub Button1_Click()
Dim btn As Button
Dim i As Integer
Dim aFiles As String[] = Dir(User.home &/ "Scrivania", "*", gb.File)
  For i = 0 To aFiles.Max
    ' Creo il pulsante ed imposto il suo
    ' osservatore eventi
    With btn = New Button(Me) As "BTN"
      .Name = "btn" & CStr(i)
      .Text = File.BaseName(aFiles[i])
      .h = 28
      .W = 100
      .x = 5
      .y = 20 + .h * i
      .Visible = True
    End With
  Next
End

Public Sub BTN_Click()
' Intercetto il click e determino quale pulsante è stato attivato
' grazie a LAST.
  Print "Hai cliccato sul bottone: " & Last.Name
End




La stessa cosa puoi ottenerla con la Proprietà Gruppo nell'IDE.
Titolo: Re: ricavare ogetto dall'evento
Inserito da: baldi96 - 11 Febbraio 2013, 08:47:39
Ok grazie mille,mi stavo scervellando x una cosa cosí semplice.
Titolo: Re: [RISOLTO]ricavare ogetto dall'evento
Inserito da: sotema - 11 Febbraio 2013, 09:17:57
ogni pulsante creato lo ho assegnato con object.attach a un evento click.
tieni presente che le sintassi:

Codice: gambas [Seleziona]

Dim btn as button
btn = new button(me) as "BTN"


e

Codice: gambas [Seleziona]

dim btn as new button
Object.Attach(btn,me,"BTN")


sono equivalenti.
Titolo: Re: ricavare ogetto dall'evento
Inserito da: vuott - 11 Febbraio 2013, 16:20:13
Per ottenere informazioni sull'oggetto che ha scatenato un determinato evento puoi usare LAST che.......

Queste cose, mannaggia, andrebbero scritte innanzitutto nella nostra WIKI !!!   :evil:
Titolo: Re: [RISOLTO]ricavare ogetto dall'evento
Inserito da: sotema - 11 Febbraio 2013, 16:35:41
Mi scusi comandante. Cercherò di rimediare, tempo permettendo, alla mia mancanza. :hard:
Titolo: Re: [RISOLTO]ricavare ogetto dall'evento
Inserito da: vuott - 11 Febbraio 2013, 16:42:53
Mi scusi comandante. Cercherò di rimediare, tempo permettendo, alla mia mancanza. :hard:

Allineàti e coperti !     :P

   (http://2.bp.blogspot.com/-jRDcgYtQYfU/UJmP3lD4DqI/AAAAAAAAQkI/1nF2t0CDDFw/s1600/image004.jpg)