Differenze tra le versioni di "Metodi New() e Free() degli oggetti"
Riga 13: | Riga 13: | ||
* _New() può essere usato per passare dei parametri all'oggetto, proprio nella fase di creazione (non di apertura), e può essere utilizzato anche per creare oggetti all'interno di una ''Form''. | * _New() può essere usato per passare dei parametri all'oggetto, proprio nella fase di creazione (non di apertura), e può essere utilizzato anche per creare oggetti all'interno di una ''Form''. | ||
* _Free() viene chiamato giusto nella fase finale di eliminazione dell'oggetto dalla memoria. Può essere utilizzato, ad esempio, per terminare un ''timer'' (se si verifica un errore), oppure per chiudere un'attività, a prescindere dal resto. | * _Free() viene chiamato giusto nella fase finale di eliminazione dell'oggetto dalla memoria. Può essere utilizzato, ad esempio, per terminare un ''timer'' (se si verifica un errore), oppure per chiudere un'attività, a prescindere dal resto. | ||
+ | |||
+ | Nel primo metodo, si possono quindi definire e impostare i valori base e le proprietà dell'oggetto, e questo anche se è un'oggetto grafico (es. una ''Form''). La seconda classe è utilizzabile per pulire determinate situazioni (es. una connessione), che magari non sono state completate correttamente a causa di un'errore nella classe. | ||
Queste due funzioni, dunque, sono sempre e comunque chiamate (indipendentemete se dichiarate esplicitamente nel codice o meno) da Gambas, quando l'oggetto viene creato e distrutto, anche se non sono presenti nel codice dell'oggetto, perchè esistono comunque nella classe base di tutti gli oggetti creati in gambas (''Object''). | Queste due funzioni, dunque, sono sempre e comunque chiamate (indipendentemete se dichiarate esplicitamente nel codice o meno) da Gambas, quando l'oggetto viene creato e distrutto, anche se non sono presenti nel codice dell'oggetto, perchè esistono comunque nella classe base di tutti gli oggetti creati in gambas (''Object''). |
Versione delle 05:42, 23 mag 2013
Ogni oggetto ha alcuni metodi che possono essere utilizzati tranquillamente, e che corrispondono a precise fasi della vita dell'oggetto. |1| |2|
Quelli più importanti, sono:
Public Sub _New()
e
Public Sub _Free()
rispettivamente:
- _New(): creazione dell'oggetto;
- _Free(): distruzione dell'oggetto;
- _New() può essere usato per passare dei parametri all'oggetto, proprio nella fase di creazione (non di apertura), e può essere utilizzato anche per creare oggetti all'interno di una Form.
- _Free() viene chiamato giusto nella fase finale di eliminazione dell'oggetto dalla memoria. Può essere utilizzato, ad esempio, per terminare un timer (se si verifica un errore), oppure per chiudere un'attività, a prescindere dal resto.
Nel primo metodo, si possono quindi definire e impostare i valori base e le proprietà dell'oggetto, e questo anche se è un'oggetto grafico (es. una Form). La seconda classe è utilizzabile per pulire determinate situazioni (es. una connessione), che magari non sono state completate correttamente a causa di un'errore nella classe.
Queste due funzioni, dunque, sono sempre e comunque chiamate (indipendentemete se dichiarate esplicitamente nel codice o meno) da Gambas, quando l'oggetto viene creato e distrutto, anche se non sono presenti nel codice dell'oggetto, perchè esistono comunque nella classe base di tutti gli oggetti creati in gambas (Object).
Se si intende passare dati, è possibile scrivere la funzione in questo modo:
Public Sub _New(parm1 as String, parm2 AS String, ..., parm3 AS Integer) End
all'interno possono essere assegnati i parametri ad altrettante proprietà dell'oggetto, o condizionarne il funzionamento (es. definire le dimensioni iniziali di una Form).
Note
[1] Riportiamo in questa pagina in modo più organico semplicemente diversi interventi e messaggi scritti su quest'argomento dall'utente md9327 del forum Gambas-it.org .
[2] Sull'argomento vedere anche e soprattutto la pagina della WIKI: Metodi nascosti.