Autore Topic: Differenza fra avvio form e main che istanzia lo stesso form  (Letto 611 volte)

Offline g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo

Buongiorno a tutto il forum.

Cercando di apprendere le tecniche di programmazione di Gambas, mi sono accorto che vi sono alcuni esempi costituiti da una form completa dei controlli necessari, dove il codice di avvio inizia da un main della form stessa con questo codice:

STATIC PUBLIC SUB Main()
  DIM myForm AS Form
  myForm = NEW FStart
  myForm.Show
END

 La mia domanda è la seguente: come mai viene usato il main per istanziare la form quando sarebbe sufficiente dare il via diretto al programma? 

Grazie a tutti
Giovanni

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Differenza fra avvio form e main che istanzia lo stesso form
« Risposta #1 il: 12 Ottobre 2012, 10:00:21 »
E' da tener ben presente che, comunque, ogni applicazione usa la classe Application, anche se non specificata dal programmatore.

Detto questo, un programma può:

1) partire da una form. Da ricordare che la prima form avviata è la mainform del programma.
2) utilizzare un modulo per l'avvio del programma.

Nel primo caso, non è necessario creare un metodo statico per avviare la Form, in quanto è possibile definirla come punto di avvio del programma, agendo su la relativa impostazione, visibile tramite il pulsante destro sull'oggetto, visibile nell'elenco presente nell'ide di gambas.

E' comunque possibile definire, all'interno del codice della form, come hai notato negli esempi, un metodo, statico, utilizzabile per avviare la form. Se gambas lo trova, lo esegue prima di tutto il resto, sempre se la form è definita come punto di avvio del programma.

Nel secondo caso, puoi definire un modulo, in cui definire un punto di avvio. E' da tener presente che, per definizione, il metodo, o funzione, deve chiamarsi appunto Main(), e può accettare parametri (da dichiarare nella definizione della funzione).

Oltre a quanto sopra, puoi anche creare una tua Application personalizzata, derivandola dalla classe fornita da gambas. Questa classe fornisce alcuni strumenti che possono essere utile nel tuo programma, e può essere espanza, aggiungendo altre proprietà e metodi personalizzati e specializzati, utili sempre nel tuo programma.
L'avvio della tua Application personalizzata deve essere fatto tramite una main, statica se inclusa nella stessa classe, normale se inserita in un modulo esterno.
La prima form avviata dalla classe Application diventa automaticamente la MainForm dell'applicazione, per cui questa particolarità è da tener ben presente nellosviluppo logico del programma.