Differenze tra le versioni di "Application"
Riga 11: | Riga 11: | ||
---- | ---- | ||
'''ActiveControl''' : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt") | '''ActiveControl''' : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt") | ||
+ | Ritorna il controllo che ha attualmente il fuoco. | ||
'''ActiveWindow''' : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt") | '''ActiveWindow''' : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt") | ||
+ | Ritorna la finestra corrente attiva, ad esempio quella proprietaria del controllo che ha attualmente il fuoco. | ||
'''Args''' : (oggetto, solo lettura) | '''Args''' : (oggetto, solo lettura) | ||
Riga 28: | Riga 30: | ||
'''Busy''' : (intero, solo librerie "gb.gtk" e "gb.qt") | '''Busy''' : (intero, solo librerie "gb.gtk" e "gb.qt") | ||
+ | Modifica lo stato di occupato dell'applicazione. | ||
+ | Quando questa proprietà è maggiore di zero, il cursore del mouse è bloccato (visualizza una clessidra) per mostrare che l'applicazione è occupata e non risponde ai comandi. | ||
+ | Il valore di questa proprietà và incrementato all'avvio di una lunga elaborazione, e decrementato al termine della stessa. In questo modo viene evitato il lampeggio fastidioso durante il processo. | ||
+ | Attenzione a decrementare questa proprietà, se l'elaborazione fallisce (vedi TRY...CATCH)! | ||
'''Daemon''' : (logico) | '''Daemon''' : (logico) |
Versione delle 19:02, 10 gen 2009
Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo. La classe è anche utilizzata come classe base per gli oggetti Application delle librerie "gb.gtk" e "gb.qt".
Tipo
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.
Proprietà
ActiveControl : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt") Ritorna il controllo che ha attualmente il fuoco.
ActiveWindow : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt") Ritorna la finestra corrente attiva, ad esempio quella proprietaria del controllo che ha attualmente il fuoco.
Args : (oggetto, solo lettura) Ritorna un array contenente gli argomenti passati da riga di comando al programma. Dato che l'array è in realtà un oggetto Collection, la lettura degli elementi può essere effettuata solo tramite il comando FOR EACH...NEXT; ogni valore ritornato è una stringa. Il primo elemento ritornato (argumento #0) è sempre il nome del programma.
Esempio di lettura:
PUBLIC SUB Main() DIM sArg AS String FOR EACH sArg IN Application.Args PRINT sArg NEXT END
Busy : (intero, solo librerie "gb.gtk" e "gb.qt") Modifica lo stato di occupato dell'applicazione. Quando questa proprietà è maggiore di zero, il cursore del mouse è bloccato (visualizza una clessidra) per mostrare che l'applicazione è occupata e non risponde ai comandi. Il valore di questa proprietà và incrementato all'avvio di una lunga elaborazione, e decrementato al termine della stessa. In questo modo viene evitato il lampeggio fastidioso durante il processo. Attenzione a decrementare questa proprietà, se l'elaborazione fallisce (vedi TRY...CATCH)!
Daemon : (logico) Se uguale a TRUE, l'applicazione viene eseguita come un demone. In questo caso, l'applicazione si biforca e termina l'oggetto parent di recente creazione, di modo che il reale parent dell'applicazione non attende la sua chiusura; la directory di lavoro corrente diventa la root "/"; lo standard input, lo standard output e lo standard error output vengono chiusi. Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE). La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.
Dir : (stringa, solo lettura) Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.
Embedder : (puntatore, solo librerie "gb.gtk" e "gb.qt")
Env : (oggetto, solo lettura) Ritorna un array di stringhe virtuale, contenente le variabili di ambiente (ovvero di sistema). Come per Args, la lettura degli elementi può essere effettuata solo tramite il comando FOR EACH...NEXT.
Esempio di lettura:
PUBLIC SUB Main() DIM sEnv AS String FOR EACH sEnv IN Application.Env PRINT sEnv NEXT END
Font : (oggetto, solo librerie "gb.gtk" e "gb.qt")
Handle : (intero, solo lettura) Ritorna il pid di sistema (identificatore di processo) del programma.
Id : (intero, solo lettura) Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).
MainWindow : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt")
Name : (stringa, solo lettura) Ritorna o imposta il nome del programma, così come definito nel progetto.
Path : (stringa, solo lettura) Ritorna la directory dove risiede l'applicazione.
Return : (intero) Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina. La proprietà può essere utilizzata, ad esempio, per ritornare un codice particolare al sistema operativo in caso di errore. Di default, l'applicazione termina con un valore '1', se il programma termina a causa di un errore, altrimenti ritorna '0'.
Theme : (stringa, solo librerie "gb.gtk" e "gb.qt")
Title : (stringa, solo lettura) Ritorna il titolo dell'applicazione, così come impostato nel progetto.
ToolTip : (oggetto, solo lettura, solo librerie "gb.gtk" e "gb.qt")
Version : (stringa, solo lettura) Ritorna la versione del programma, così come impostata nel progetto. Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version. E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.
Esempio:
PRINT Application.Version > 0.0.1
Metodi
La classe Application, nella libreria "gb" non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.
Eventi
Application_Read() : Se questo metodo viene definito nella classe di lancio del progetto, lo standard input viene catturato dall'interprete, e il metodo viene chiamato ad ogni lettura dello standard input.
Descrizione
Anche se statica, è possibile creare classi Application derivate da quella di base, personalizzabili a seconda delle proprie esigenze (aggiunta di altre proprietà e/o metodi). Ad esempio:
Class MyApplication
STATIC PUBLIC SUB Run() ... END
Una cosa molto importante è che tutte le nuove proprietà e i nuovi metodi aggiunti, siano dichiarati STATIC; non è possibile, e ammesso, costruire metodi e proprietà dinamiche in una classe dichiarata statica (mentre è vero il contrario, anche se i metodi non devono contenere riferimenti, o chiamate, a entità dinamiche della stessa classe).
Esempi