Individuare un bottone quando cliccato

di il
8 risposte

Individuare un bottone quando cliccato

Vorrei sapere se è possibile dall'evento scatenante un click, come si fa a distinguere un bottone da un'altro. io ho provato con caption ma non mi è riuscito, ho dato un nome diverso per ogni bottone, ma pare che Small Basic estrapoli solo che un pulsante qualsiasi sia stato cliccato. Qualcuno ha incontrato lo stesso problema? Ringrazio in anticipo...

francesco.

8 Risposte

  • Re: Individuare un bottone quando cliccato

    Non sapendo in quale linguaggio, non sapendo a che scopo...

    Generalizzando:

    Variabileglobale testo

    ...

    BottoneX.click

    Variabileglobale=bottoneX

    Messaggio("hai premuto il bottoneX")

    ....

    Fine.

  • Re: Individuare un bottone quando cliccato

    28/07/2025 - panfra ha scritto:

    pare che Small Basic estrapoli solo che un pulsante qualsiasi sia stato cliccato

    No, ma la Collection Controls ha la proprietà LastClickedButton

    https://smallbasic-publicwebsite.azurewebsites.net/docs/Controls

  • Re: Individuare un bottone quando cliccato

    Grazie per quanto dettomi. infatti si puo' intercettare il botttone ma quello che c'è nella textbox asssociata al bottone, niente da fare. il codice seguente viene accettato ma non da' risultati... di testo.

    Sub onbuttoncliched
      
      AA = Controls.LastClickedButton
      BB = Controls.LastTypedTextBox
      
       If AA = button1 Then
        If BB = "" then
          Sound.PlayBellRing()
        Else
          GraphicsWindow.ShowMessage(AA ,BB)
        endif  
      ElseIf AA = Button2 then
        If BB = "" then
          Sound.PlayChime()
        Else
          GraphicsWindow.ShowMessage(AA,BB)
        endif      
      EndIf
    endsub  
  • Re: Individuare un bottone quando cliccato

    29/07/2025 - panfra ha scritto:

    quello che c'è nella textbox asssociata al bottone

    Non conosco SmallBasic, quindi prendi questa mia come una considerazione: non credo tu possa "associare" nel vero senso del termine una TextBox ed un Button. Per prelevare il contenuto di una Textbox esiste il metodo apposito ed anche per la Caption del Button.

    Proverei pertanto ad usare il seguente approccio:

      BB = Controls.LastTypedTextBox
      tBB = Controls.GetTextBoxTex(BB)
       If AA = button1 Then
        If tBB = "" then
        Sound.PlayBellRing()
        Else
          GraphicsWindow.ShowMessage(Controls.GetButtonCaption(AA) ,BB)

    Io ho fatto due test al volo sul IDE online e mi sembra funzionare.

  • Re: Individuare un bottone quando cliccato

    IO lo trasformata in.... che non mi da' errori. Ma comunque non funziona

    AA = ""
    button1 = Controls.AddButton("CIAO",50,50)
    textbox = Controls.addtextbox(10,10)
    BB = Controls.LastTypedTextBox
      tBB = Controls.GetTextBoxText(BB)
       If AA = button1 Then
        If tBB = "" then
        Sound.PlayBellRing()
        Else
          GraphicsWindow.ShowMessage(Controls.GetButtonCaption(AA) ,BB)
          EndIf
        endif
  • Re: Individuare un bottone quando cliccato

    30/07/2025 - panfra ha scritto:

    Ma comunque non funziona

    Che purtroppo come affermazione non mi aiuta ad aiutarti. :-) Anche lo stralcio di codice non è completo e mancano alcune parti. 

    Ho provato a riadattarlo nel seguente modo

    button1 = Controls.AddButton("CIAO",50,50)
    textbox = Controls.AddTextBox(10,10)
    Controls.ButtonClicked = Button_Click
    
    Sub Button_Click
    lastTxt = Controls.LastTypedTextBox
    lastTxtText = Controls.GetTextBoxText(lastTxt)
    
    lastBtn = Controls.LastClickedButton
    
    If lastBtn = button1 Then
        If lastTxtText = "" then
            GraphicsWindow.ShowMessage("Eseguo il metodo Sound.PlayBellRing()" ,"Richiamo un metodo")
            'Sound.PlayBellRing()
        Else
            GraphicsWindow.ShowMessage(Controls.GetButtonCaption(lastBtn) + " - " + lastTxtText ,lastTxtText)
        EndIf
    Endif
    EndSub

    e nell'IDE online funziona correttamente. I metodi di Sound non sono però disponibili e quindi ho messo un altro ShowMessage. Non mostra nemmeno il title, quindi ho improvvisato di nuovo.

    Ho rinominato le variabili per dar loro un nome che abbia un senso a livello intuitivo così da rendere il codice più leggibile.

  • Re: Individuare un bottone quando cliccato

    Ho aggiunto un altro bottone e tutto funziona correttamente... Grazi Francesco.

    button1 = Controls.AddButton("CIAO",50,50)
    button2 = Controls.AddButton("Addio",100,100)
    textbox = Controls.AddTextBox(10,10)
    textbox = Controls.AddTextBox(30,30)
    
    Controls.ButtonClicked = Button_Click
    
    Sub Button_Click
    lastTxt = Controls.LastTypedTextBox
    lastTxtText = Controls.GetTextBoxText(lastTxt)
    
    lastBtn = Controls.LastClickedButton
    
    If lastBtn = button1 Then
        If lastTxtText = "" then
            GraphicsWindow.ShowMessage("Eseguo il metodo Sound.PlayBellRing()" ,"Richiamo un metodo")
            'Sound.PlayBellRing()
        Else
            GraphicsWindow.ShowMessage(Controls.GetButtonCaption(lastBtn) + " - " + lastTxtText ,lastTxtText)
        EndIf
      Endif
      
      If lastBtn = button2 Then
        If lastTxtText = "" then
            GraphicsWindow.ShowMessage("Eseguo il metodo non suona" ,"Richiamo un metodo")
            'Sound.PlayBellRing()
        Else
            GraphicsWindow.ShowMessage(Controls.GetButtonCaption(lastBtn) + " - " + lastTxtText ,lastTxtText)
        EndIf
    Endif
    EndSub
  • Re: Individuare un bottone quando cliccato

    31/07/2025 - panfra ha scritto:

    tutto funziona correttamente...

    Ottimo. Andrebbe riscritto come codice, ma il concetto ce l'hai.

Devi accedere o registrarti per scrivere nel forum
8 risposte