Scusate qual'è la sintassi che sostituisce il me, per recuperare l'istanzia dell'oggetto?
Non posso usare il me, perchè il form principale non è aperto in quel momento..
Scusate qual'è la sintassi che sostituisce il me, per recuperare l'istanzia dell'oggetto?
Non posso usare il me, perchè il form principale non è aperto in quel momento..
Tony
yesOriginariamente inviato da Luciano79
.NET?
Tony
se si tratta del 2003 devi ragionare a classi
Dal 2005 si ragiona come col VB6, direttamente col nome della formcodice:Dim AltraForm As New Form2 MsgBox(AltraForm.Text) AltraForm=Nothing
codice:MsgBox(Form2.Text)![]()
mi spiego meglio..
dato questo codice
Sub apriFrm_film()
If pr_frm_film Is Nothing Then
pr_frm_film = New frm_film()
pr_frm_film.MdiParent = me
End If
pr_frm_film.Show()
pr_frm_film.Focus()
End Sub
devo sostituire il me con..... il form frm_index di cui ho istanziato cosi
dim obj_frm_index as new frm_index
ma facendo cosi:
Sub apriFrm_film()
If pr_frm_film Is Nothing Then
pr_frm_film = New frm_film()
pr_frm_film.MdiParent = obj_frm_index
End If
pr_frm_film.Show()
pr_frm_film.Focus()
End Sub
non funziona :master:![]()
Tony
Cosa significa "non funziona"?? Spiega... :rollo:Originariamente inviato da tony83
non funziona
P.S.: per quanto riguarda l'approccio "a-la-VB6", io eviterei di usarlo se possibile, privilegiando l'uso della classe (che poi è ciò che avviene dietro le quinte quando si adopera la classe in quel modo).
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Ciao, ma è solo per una questione di "forma" o altro?Originariamente inviato da alka
P.S.: per quanto riguarda l'approccio "a-la-VB6", io eviterei di usarlo se possibile, privilegiando l'uso della classe (che poi è ciò che avviene dietro le quinte quando si adopera la classe in quel modo).
![]()
Jupy
La questione è che, essendo VB.NET un linguaggio orientato agli oggetti, si dovrebbe avere la cura e l'impegno di carpirne il funzionamento secondo quest'ottica, limitando l'uso di espedienti come questo che potrebbero generare confusione e sono introdotti al solo scopo di "ammorbidire" il passaggio da VB6 a VB.NET.Originariamente inviato da Jupy64
Ciao, ma è solo per una questione di "forma" o altro?
In un linguaggio orientato agli oggetti, trovare la chiamata ad un metodo di istanza che segue l'identificatore di una classe non è proprio una cosa comune.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
errore durante la creazione dell'handle!
Tony
Avrai senz'altro attribuito qualche impostazione errata ad uno o entrambi i due form che entra in conflitto con il meccanismo MDI.
Io ho creato un nuovo progetto, ho inserito due form, ho impostato la proprietà IsMdiContainer a True nel principale e aggiunto questo codice da eseguire alla pressione di un pulsante:
Il codice funziona perfettamente: crea un'istanza del form e la visualizza all'interno del contenitore. Premendo ripetutamente il pulsante, essendo presente un'istruzione New, viene creata ogni volta una nuova istanza della classe; ci saranno, quindi, tanti form quante sono le volte che il pulsante viene premuto, e ciascun form si comporterà così come definito nel codice della classe che lo rappresenta e che ne definisce inoltre le caratteristiche (aspetto, posizione, ecc.).codice:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm As New ChildForm frm.MdiParent = Me frm.Show() End Sub
Usando la scrittura simile a VB6, viene creata automaticamente un'istanza del form e si lavora sempre su quella implicitamente:
Ecco perché è importante avere ben presente la differenza nelle due scritture, e conviene utilizzare la prima forma in modo da abituarsi al metodo di lavoro imposto dal .NET Framework, evitando poi di trovarsi in difficoltà non appena si incontra un blocco di codice che tratta le classi "come si deve".codice:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ChildForm.MdiParent = Me ChildForm.Show() End Sub
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...