Raggiungere e gestire gli oggetti di FMain da una classe secondaria
In un progetto didattico supponiamo di avere un Form principale, sul quale sono posti un Button (che chiameremo: "Button1") ed una Label (che chiameremo: "Label1"), nonché un contenitore Panel (che chiameremo: "Panel1") contenente a sua volta due Label ("Label2" e "Label3").
Nel programma è presente anche una classe secondaria, che per l'occasione chiameremo "Cmia.class", istanziata ovviamente nella classe principale "FMain.class".
Scopo del programma didattico è quello di gestire tutti i suddetti oggetti di FMain mediante istruzioni poste nella classe secondaria "Cmia.class". In particolare il programma didattico dovrà assegnare a "Button1" e a "Label1" la Caption: "luna", mentre a "Label2" ed a "Label3" la Caption: "sole".
Il modo più semplice di gestire oggetti presenti nel Form da una classe secondaria è quella di poterli richiamare direttamente all'interno della classe secondaria medesima, ossia poter scrivere così:
FMain.Button1.Caption = "luna"
FMain.Label1.Caption = "luna"
FMain.Label2.Caption = "sole"
FMain.Label3.Caption = "sole"
Per far sì che gli oggetti presenti nel Form principale siano richiamabili da una classe secondaria è necessario rendere pubblici i controlli del Form. Ciò si farà così:
1) in alto a sinistra nel menu cliccare su: "Progetto ", quindi "Proprietà ";
2) nella finestra, che compare, scegliere la scheda "Opzioni ";
3) nella scheda delle "Opzioni" attivare (cambiare da NO a Sì) l'opzione: «I controlli del form sono "Public"».
In alternativa nella classe secondaria "Cmia.class" si potrà sperimentare anche un codice del tipo seguente:
' il seguente codice è scritto nella classe secondaria Cmia.class: Public Sub cmiaSec(testo As String) Dim obj, objsub As Object For Each obj In FMain.Children Select Case obj.Name Case "Button1" obj.Caption = "luna" Case "Label1" obj.Caption = "luna" End Select If Object.Type(obj) = "Panel" Then For Each objsub In obj.Children If Object.Type(objsub) = "Label" Then objsub.Caption = "sole" Endif Next Endif Next End