Gambas-it

Gambas3 => Programmazione => Topic aperto da: Gianluigi - 17 Giugno 2016, 20:50:04

Titolo: Perchè mettere il contenitore di un form a Null?
Inserito da: Gianluigi - 17 Giugno 2016, 20:50:04
Qualcuno può essere così cortese di spiegarmi la differenza che c'è fra queste due finestre main (FMain).
Che cosa comporta mettere il parent (il contenitore?) a Null?

Codice: [Seleziona]
Public Sub Main() 
 
  Dim hFMain As FMain
 
  With hFMain = New FMain
    .Caption = "Pippo"
    .Show
  End With
 
End

e

Codice: [Seleziona]
Public Sub Main()
 
  Dim hFMain As FMain
 
  With hFMain = New FMain(Null)
    .Caption = "Pippo"
    .Show
  End With
 
End

 :ciao: :ciao:
Titolo: Re:Perchè mettere il contenitore di un form a Null?
Inserito da: vuott - 17 Giugno 2016, 21:11:28
Posti così come scritti, i due codici innanzitutto mi restituiscono questo errore:

" Unknown identifier: FMain "







Titolo: Re:Perchè mettere il contenitore di un form a Null?
Inserito da: Gianluigi - 17 Giugno 2016, 21:20:04
Posti così come scritti, i due codici innanzitutto mi restituiscono questo errore:

" Unknown identifier: FMain "

Si hai ragione non ho specificato che il programma contiene un modulo (classe di avvio) e una form (FMain), mi pareva sottinteso dal codice, chiedo scusa.

 :ciao: :ciao:
Titolo: Re:Perchè mettere il contenitore di un form a Null?
Inserito da: vuott - 17 Giugno 2016, 21:27:50
Non mi pare che vi siano effetti diversi usando i due codici.
Titolo: Re:Perchè mettere il contenitore di un form a Null?
Inserito da: Gianluigi - 17 Giugno 2016, 21:36:38
Qui (http://www.gambas-it.org/smf/index.php?topic=1374.msg15662#msg15662) e qui (http://www.gambas-it.org/smf/index.php?topic=1259.msg15213#msg15213) md9327 ne parla ma non mi è chiaro cosa intende nello specifico.
 :ciao: :ciao:

Dimenticavo la più importante: sotema, che non è certo uno sprovveduto, la usa in questo (http://www.gambas-it.org/smf/index.php?PHPSESSID=c875aq6jsvpg9ft52lvp8a9u03&topic=3730.msg34185#msg34185) esempio e vorrei tanto capirne il motivo.
Titolo: Re:Perchè mettere il contenitore di un form a Null?
Inserito da: vuott - 18 Giugno 2016, 01:06:01
I ''Form'' sono finestre; perfino i Button sono finestre, alla base dei quali oggetti vi sono le risorse sistema grafico X11.

Io credo che, se non dichiari espressamente Null il Genitore del Form creato, è come se lo dichiarassi tale (ossia Null), ma implicitamente. Insomma o lo dichiari come Null, o non lo dichiari assolutamente... il Parent del Form sempre "Null" è !
In tali due casi il Form non assume, dunque, alcun Genitore.

Del resto se poni alla fine della routine Sub Main() questa linea:
Codice: [Seleziona]
Print MainForm.Parent.Name
lanciando il programma, otterrai l'errore di oggetto nullo, inesistente, sia esplicitando come Null il parametro del Contenitore "parent" sia omettendolo. Insomma il Form in entrambi i casi non ha Genitore.
"Superiorem non recognoscit !"
   :-X



Titolo: Re:Perchè mettere il contenitore di un form a Null?
Inserito da: Gianluigi - 18 Giugno 2016, 17:48:12
 :ciao: Vuott,
scusa il ritardo nel ringraziarti per la risposta.
Avrei dovuto pensarci meglio...

 :ciao: :ciao: