Autore Topic: Vbox  (Letto 1004 volte)

Offline giango

  • Grande Gambero
  • ***
  • Post: 164
    • Mostra profilo
Vbox
« il: 22 Luglio 2024, 12:19:24 »
Buongiorno a tutto il team!
E' risaputo che con un controllo Vbox si possono inserire alcuni pulsanti in modo dinamico con un codice tipo questo:
Codice: [Seleziona]
 dati = cn.Exec("Select * From tabella_sqlite")      'RESULT
          For conta = 0 To dati.fields.count - 1      'CICLA NEI CAMPI
             bott = New Button(VBox1) As "grp_bott"   'CREA IL BOTTONE NEL CONTENITORE VBOX (grp_bott)
             bott.text = dati.Fields[conta].name      'RINOMINA IL BOTTONE COL NOME DEL CAMPO CORRENTE
             bott.height = 20
          Next
e poi con una routine evento sul gruppo bottoni ottenere il nome del pulsante premuto:
Codice: [Seleziona]
Public Sub grp_bott_Click()
  Label1.caption = "Hai agito sul pulsante:   " & Last.Text
end

Se però provo farlo con delle caselle di testo anzichè pulsanti, e provo ad attivare evento mousedown sul gruppo, non riesco a distinguere la casella a cui ho puntato. Vi risulta sia possibile questa cosa?


Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Vbox
« Risposta #1 il: 22 Luglio 2024, 13:40:17 »
Credo che tu debba rivedere il tuo codice, perché se funziona in un HPanel, deve funzionare anche in un VBox.
Vedi esempio allegato

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline giango

  • Grande Gambero
  • ***
  • Post: 164
    • Mostra profilo
Re:Vbox
« Risposta #2 il: 22 Luglio 2024, 14:34:34 »
Chiarissimo!
La differenza sta nel contenitore, che nel mio caso era un Vbox e nel tuo in un HPanel.
Probabilmente i controlli Hbox e Vbox consentono di farlo solo con i pulsanti, mentre
utilizzando HPanel e Vpanel la cosa funzione!
Grazie infinte per il contributo!

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Vbox
« Risposta #3 il: 22 Luglio 2024, 14:54:59 »
Chiarissimo!
La differenza sta nel contenitore, che nel mio caso era un Vbox e nel tuo in un HPanel.
Probabilmente i controlli Hbox e Vbox consentono di farlo solo con i pulsanti, mentre
utilizzando HPanel e Vpanel la cosa funzione!
Grazie infinte per il contributo!

No, non è così:
come ti ho detto se cambia il contenitore il risultato deve essere uguale (naturalmente non esteticamente)

Fai girare questo codice in un progetto grafico vergine:
Codice: [Seleziona]
Public Sub Form_Open()

  Dim aResult As String[] = ["Pippo", "Pluto", "Paperino", "Topolino", "Minnie", "Zio Paperone", "Gastone"] ' Simula il risultato di un'interrogazione
  Dim hText As TextBox
  Dim hVBox As VBox

  With Me
    .Arrangement = Arrange.Vertical
    .W = 200
    .H = 300
    .Margin = True
  End With
  With hVBox = New VBox(Me)
    .Expand = True
    .Spacing = True
  End With
  For i As Integer = 0 To aResult.Max
    With hText = New TextBox(hVBox) As "TextBox"
      .Name = "TextBox" & CStr(i + 1)
      .H = 35
      .Text = aResult[i]
    End With
  Next

End

Public Sub TextBox_MouseDown()
 
  Print Last.Name;; Last.Text
 
End

 :ciao:
« Ultima modifica: 22 Luglio 2024, 16:36:06 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.720
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Vbox
« Risposta #4 il: 22 Luglio 2024, 16:18:36 »
Fai girare questo codice in un progetto grafico vergine:


Gianluigi......che sfacciato !
« 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 Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Vbox
« Risposta #5 il: 22 Luglio 2024, 16:35:28 »

Gianluigi......che sfacciato !

Allora è vero che invecchiando si ritorna bambini  :)

Comunque avrei potuto esprimermi meglio...  :P

Approfitto di questa risposta per apportare un ritocchino al codice  (;; Last.Text) :P :P
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline giango

  • Grande Gambero
  • ***
  • Post: 164
    • Mostra profilo
Re:Vbox
« Risposta #6 il: 22 Luglio 2024, 16:46:41 »
Concordo Gianluigi. Ora non è solo chiaro, ma cristallino!