Successfully upgraded to Vanilla Forums v2.6. Please report any issue you may find.

2.2 - La prima finestra

edited April 2016 in Italian
Una delle classi che stanno alla base di HGui è la finestra: la finestra è il cuore dell'interfaccia grafica perchè dovrà ospitare i vari gadget e dovrà reagire a determinati eventi come ad esempio il ridimensionamento, la chiusura, la riduzione ad icona ecc... ma potrà anche rispondere a degli eventi provenienti dalla tastiera ed eseguire delle funzioni di callback associate.
Per cercare di non confondere il lettore tenterò di introdurre gli argomenti e le funzionalità un poco alla volta in modo da dare all'utente il tempo di assimilare i concetti fondamentali, uno ad uno, con la dovuta calma.

In questo primo tutorial vedremo alcune cose, tra cui il sistema di debug, e le istruzioni necessarie ad aprire una finestra HGui.

Il sistema di debug è importante per scoprire se qualcosa è andato storto, in questa prima fase di apprendimento credo sia estremamente importante capire ed osservare, attraverso il debug log, come HGui agisce ed esegue le nostre istruzioni.

Create un nuovo script e digitate il seguente programma:
; Includiamo la libreria HGui nella nostra applicazione
@INCLUDE "yourpath/+Includes.hws"
@INCLUDE #INC_HGUI
I due include servono a caricare la libreria HGui e le altre dipendenze di cui HGui necessita.
; Attiviamo il sistema di debug con il seguente codice:
DBG.Console.Enable(True, False)
DBG.Console.AddChannel(HGui.DebugChannel)
La prima riga serve per attivare il sistema di debug, il primo parametro serve per includere il timer in millisecondi su ogni riga di debug mentre il secondo parametro serve per attivare/disattivare il supporto alle sequenze ANSI. Se il tuo terminale supporta le sequenze ANSI ti consiglio di attivarla sostituendo False con True: in questo modo gli avvisi e gli errori saranno mostrati con una colorazione facilmente identificabile.

La seconda riga serve per abilitare il debug relativo alla libreria HGui, nessun altro tipo di debug sarà mostrato se non esplicitamente attivato con il comando DBG.Console.AddChannel(). Per ulteriori informazioni fai riferimento alla documentazione relativa alla libreria di Debug.

Adesso vedremo come creare un oggetto window, la finestra creata sarà aperta al momento della creazione:
Local myFirstWindow = HGui.Window:new({ title = "My First Window!" })


Come si può vedere il metodo :new() serve a generare un oggetto window, questo metodo accetta come input una tabella che serve per personalizzare la finestra da creare. Nel nostro esempio abbiamo personalizzato solo il titolo della finestra, ossia ciò che sarà mostrato nella barra di trascinamento.
Dal momento che viene restituito un oggetto window dovremo per forza memorizzarlo da qualche parte per poterne utilizzare i metodi, in questo caso lo abbiamo memorizzato nella variabile locale myFirstWindow anche se nel nostro semplicissimo esempio non sarebbe stato necessario.
Se la creazione della finestra fosse fallita per qualsiasi motivo avremmo avuto come risultato False.

Per concludere piazziamo un ciclo infinito che ci permetterà comunque di rilevare gli eventi:
Repeat
   WaitEvent()
Forever

Questo primo tutorial termina qui, ma se volete fare qualche esperimento provate a muovere la finestra o a ridimensionarla e vedrete che gli eventi saranno rilevati e mostrati nella finestra di debug.
Sign In or Register to comment.