Questa è la Sub richiamata dal click del pulsante "aggiungi ricetta", nel WorkSpace...
Private Sub nuovaricetta()
Dim id As Integer
If Me.wrkRicette.Children.Count > 0 Then
id = CInt(Replace(Me.wrkRicette.Children[Me.wrkRicette.Children.Max].Name, "Ricetta_", "")) + 1 ' --> è l'id dalla seconda ricetta in poi
Else
id = 0 ' --> è l'id della prima ricetta inserita
Endif
Ricetta = New FRicetta(id) As "Ricetta"
Me.wrkRicette.Add(Ricetta)
Me.wrkRicette.Children[id].Name = "Ricetta_" & id
Me.wrkRicette.Children[id].Title = "Ricetta_" & (id + 1) ''ricordare che il Title della ricetta è +1 rispetto al Name...
End
Mentre nel form FRicetta dichiaro il _new così:
Public Sub _new(progressivo As Integer)
...
...
Ricetta = New FRicetta(id) As "Ricetta"
Nel workspace inserisco tante Ricetta... Ricetta(0), Ricetta(1), Ricetta(2), ecc... che sono istanze indicizzate (spero si dica così...) di FRicetta.
Ognuna di queste istanze dichiara delle variabili pubbliche (Nome, Cognome, ecc.).
In ognuna Ricetta(x) c'è un pulsante per far aprire una finestrella (in showmodal, quella che ho chiamato sub_form...). Come faccio dalla finestrella a richiamare la variabile pubblica della Ricetta(x) che l'ha aperta?
Cioè... come faccio a far sapere alla finestrella quale è l'indice x della Ricetta(x) che l'ha aperta?
Spero di essere stato più chiaro di prima, perché mi rendo conto che da ignorante in materia uso dei termini impropri... :-[
PS: intanto ho risolto usando delle variabili globali... dichiarate in un Modulo a parte... che vengono richiamate sia da Ricetta(x) che dalla finestrella. Però vorrei capire come far dialogare direttamente le due form, senza passare per il modulo.
Grazie mille Ceskho!
Io credevo che con questa dichiarazione:
Ricetta = New FRicetta(id) As "Ricetta"
Io pensavo che l' "id" fosse l'indice di Ricetta...
E poi nel _new di FRicetta... mettevo lo stesso parametro, che nel mio caso è un Integer... così:
Public Sub _new(numero As Integer)
A questo punto ho supposto che anche le variabili pubbliche dichiarate in ogni Ricetta(id)... se richiamate altrove, dovevano essere indicizzate con lo stesso (id)...
E ho supposto che in un form esterno per richiamare la variabile pubblica Cognome di Ricetta(id) dovesse fare qualcosa del tipo:
TextBox_della_form_esterna = Cognome(id)
Ma a quanto pare mi sono perso... :rolleyes:
Quindi... perché chiamando la variabile pubblica di Ricetta da un Form_esterno il programma mi va in errore ("Not Enough Arguments...")? Tra l'altro mi sono appena accorto che io richiamo la variabile di FRicetta... e non quella della sua istanza (creata dinamicamente). Sto facendo un mare di confusione... ???