Autore Topic: [RISOLTO] Replicare gruppo di controlli  (Letto 1052 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
[RISOLTO] Replicare gruppo di controlli
« il: 10 Aprile 2020, 12:54:21 »
Ciao
in un form dovrei replicare un gruppo di controlli piu volte
un paio di label con una textbox, uno spin box e una casella di spunta
essi costituiscono un gruppo che a seconda delle esigenze va replicato piu volte
collocati in un contenitore per esempio
si riesce a riunire i controlli e con una unica replica creare altri gruppi?
spero la domanda non sia troppo contorta...
« Ultima modifica: 15 Aprile 2020, 12:24:55 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #1 il: 10 Aprile 2020, 13:58:37 »
in un form dovrei replicare un gruppo di controlli piu volte
immagino da codice...
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #2 il: 10 Aprile 2020, 14:09:14 »
in un form dovrei replicare un gruppo di controlli piu volte
immagino da codice...
 :ciao:
si per evitare molte linee di codice in piu

magari creando un nuovo oggetto che ingloba gli altri?
« Ultima modifica: 10 Aprile 2020, 14:11:01 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #3 il: 10 Aprile 2020, 16:20:16 »
Creare una classe costituita da un contenitore con i controlli e poi istanziare gli oggetti?
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #4 il: 10 Aprile 2020, 16:54:44 »
Ciao Akro,
ero in altre mansioni affaccendato..

Prova questo codice:

Codice: [Seleziona]
' Gambas class file

Private hvBox As VBox
Private hHBox As HBox
Private hLabel As Label
Private hTextBox As TextBox
Private hCheckBox As CheckBox
Private hSpinBox As SpinBox

Public Sub Form_Open()

  Me.Arrangement = Arrange.Vertical
  Me.AutoResize = True
  Me.Margin = True
  Me.Spacing = True
  Me.Resizable = False
  CreaGruppo("txtName1", "Pippo", "txtSurname1", "Pluto")
  Me.Show
  Wait 2
  CreaGruppo("txtName2", "Topolino", "txtSurname2", "Minni")
  Wait 2
  CreaGruppo("txtName3", "Paperino", "txtSurname3", "Gastone")

End

Private Sub CreaGruppo(sName1 As String, sTag1 As String, sName2 As String, sTag2 As String)

  hvBox = New VBox(Me) 'As "VBox1"
  hvBox.AutoResize = True
  hvBox.Spacing = True
  hvBox.H = 120
  hvBox.W = 520
  hHBox = New HBox(hvBox) 'As "HBox1"
  hHBox.Spacing = True
  hHBox.H = 32
  hHBox.W = 512
  hLabel = New Label(hHBox) 'As "Label1"
  hLabel.AutoResize = True
  hLabel.Text = "Nome"
  hTextBox = New TextBox(hHBox) As "txtName"
  hTextBox.Expand = True
  hTextBox.Name = sName1
  hTextBox.Tag = sTag1
  hLabel = New Label(hHBox) 'As "Label2"
  hLabel.AutoResize = True
  hLabel.Text = "Cognome"
  hLabel.AutoResize = True
  hTextBox = New TextBox(hHBox) As "txtSurname"
  hTextBox.Expand = True
  hTextBox.Name = sName2
  hTextBox.Tag = sTag2
  hHBox = New HBox(hvBox) 'As "HBox2"
  hHBox.Spacing = True
  hHBox.H = 32
  hHBox.W = 512
  hCheckBox = New CheckBox(hHBox) 'As "CheckBox"
  hCheckBox.Text = "Spunta questo"
  hCheckBox.AutoResize = True
  hLabel = New Label(hHBox) 'As "Label3"
  hLabel.Expand = True
  hLabel.Alignment = Align.Right
  hLabel.Text = "Scegli un numero"
  hSpinBox = New SpinBox(hHBox) 'As "SpinBox1"
  hSpinBox.W = 136
  hSpinBox.MinValue = 0
  hSpinBox.MaxValue = 12000

End

Public Sub txtName_MouseDown()

  Print Last.Name;; Last.Tag

End

Public Sub txtSurname_MouseDown()

  Print Last.Name;; Last.Tag

End

E vedi se ti va bene...

 :ciao:

PS: Apportati dei cambiamenti
« Ultima modifica: 10 Aprile 2020, 22:39:21 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline cogier

  • Gambero
  • **
  • Post: 57
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #5 il: 10 Aprile 2020, 17:29:15 »
Prova questo codice





Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.277
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #6 il: 10 Aprile 2020, 17:33:00 »
...ovviamente il codice di Gianluigi era meramente esemplificativo, indicativo, concettuale.
« 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.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #7 il: 10 Aprile 2020, 18:09:23 »
...ovviamente il codice di Gianluigi era meramente esemplificativo, indicativo, concettuale.

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

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #8 il: 10 Aprile 2020, 18:34:24 »
Non riesco a capire dov'è l'errore nella Caption del Form "REPICA".
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #9 il: 10 Aprile 2020, 19:02:32 »
Credo che manchi una libreria .gambas che si è scordato di allegare, ma basta rimuoverla

 :ciao:
« Ultima modifica: 10 Aprile 2020, 19:07:40 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #10 il: 10 Aprile 2020, 22:40:48 »
Ho apportato dei cambiamenti al codice per renderlo più comprensibile... spero.

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

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #11 il: 11 Aprile 2020, 08:54:10 »
Grazie a tutti per le risposte
il concetto ora è chiaro ed è proprio quello di cui avevo bisogno
confesso che ho sempre tralasciato di approfondire come funzionano i contenitori, ma mi rendo conto che sono importanti

@Kicco
nelle proprietà del progetto hai scritto "Repica"


"e il naufragar m'è dolce in questo mar"

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #12 il: 11 Aprile 2020, 09:27:09 »
@Kicco
nelle proprietà del progetto hai scritto "Repica"
:ok: Giusto! Ecco dov'era!
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #13 il: 11 Aprile 2020, 11:24:48 »
ora un passo in piu
supponiamo di utilizzare un button per creare i gruppi uno alla volta e aggiungerli al form
ora vorrei con un altro button eliminarli uno alla volta
quindi dovrei eliminare i contenitori hbox precedentemente creati
Per individuali potrei fare una cosa del genere
Codice: [Seleziona]
  Dim x As Control
 
  For Each x In Me.Controls
   
    If x.name = "Hbox" & contatore
    Then
  Next

dopo il Then?
"e il naufragar m'è dolce in questo mar"

Offline cogier

  • Gambero
  • **
  • Post: 57
    • Mostra profilo
Re:Replicare gruppo di controlli
« Risposta #14 il: 11 Aprile 2020, 15:02:51 »
Ecco la versione 2