Programmando… (Creare una GUI)
—-Creare-una-GUI–
| Codice: |
|
#include <GUIConstants.au3>
$Form = GUICreate(“GUI”, 216, 132) GUISetState(@SW_SHOW) While 1 EndSwitch |
Creare un interfaccia grafica in AutoIt è molto semplice.
Quando si crea un Form è bene includere GUIConstants.au3 così da poter usufruire di alcune variabili già preaparate dal team di AutoIt
| Codice: |
| #include <GUIConstants.au3> |
Ora passiamo alla creazione vera e propria del Form, la finestra del nostro programma. Per questo inseriamo la funzione GUICreate (“titolo”)
| Codice: |
| $Form = GUICreate(“GUI”, 216, 132) |
Il primo parametro indica il titolo della finestra;
Il secondo e il terzo parametro indicano rispettivamente larghezza e altezza della nostra finestra;
Il quarto e quinto parametro indicano invece la posizione della finestra nello schermo;
il sesto e settimo parametro indicano gli stili della finestra, ovvero dei paramatri che consentono alla vostra finestra di assumere delle praticolari proprietà. Per un elenco completo di queste proprietà consultate l’help di AutoIt
L’ottavo parametro consente di indicare una finestra “madre” per la finestra creata
E’ importante notare che solo il primo parametro è obbligatorio. Tutti gli altri parametri hanno un valore di default che verrà applicato nel caso manchi qualche parametro.
Usando il comando GUICreate () si crea l’handle della finestra (l’oggetto sul quale verranno creati i controlli)
Dopo aver creato la nostra finestrella, procediamo a popolarla di controlli (come bottoni, textbox, liste, etc)
Per creare un controllo in una finestra è sufficiente usare il comando GUICtrlCreate*
L’* va sostituito con il nome del controllo
Per creare un bottone (button in inglese
) ad esempio:
| Codice: |
| $Button = GUICtrlCreateButton(“Io penso di essere un bottone”, 16, 72, 185, 33) |
Il primo parametro indica il testo presente nel bottone
Il secondo e il terzo parametro indicano la posizione
Il quarto e il quinto parametro indicano la dimensione del controllo
il sesto e settimo parametro indicano gli stili del controllo, ovvero dei paramatri che consentono ai vostri controlli di assumere alcune prorprietà particolari
Questa è una sorta di traccia usata da molti controlli. Ovviamente alcuni controlli necessitano di più di un parametro ma le strutture dei GUICtrlCreate* sono molto simili tra loro
IMPORTANTE: Da un controllo ritorna sempre l’handle del controllo che verrà usato in seguito per gestire l’interazione con i controlli.
Dopo aver definito i controlli da usare nel Form settiamo lo stato della finestra con il comando
| Codice: |
| GUISetState(@SW_SHOW) |
A GUISetstate possono essere passati due parametri:
Il primo indica lo stato che la finestra deve assumere; il secondo indica l’handle della finestra in questione
Se il secondo parametro non viene inserito viene utilizzata l’ultimo form creato
Infine, la parte più divertente, definiamo cosa deve succedere quando l’utente preme un bottone o interagisce con un controllo.
Per questo dobbiamo usare un ciclo infinito: il programma controllerà ogni secondo se qualche controllo è stato usato e reagirà di conseguenza.
Bene, cominciamo a creare un ciclo infinito While…WEnd
| Codice: |
| While 1
Wend |
Poi utilizziamo la funzione GUIGetMsg() che rileva le interazioni con i controlli e diciamo al programma di salvare il suo valore dentro una variabile
| Codice: |
| While 1 $Msg = GUIGetMsg () Wend |
Ora creaiamo una struttura di selezione Switch sul valore di $Msg (ovvero le interazioni con i controlli)
$Msg assumerà il valore dell’handle del controllo che è stato usato, quindi organizziamo così il nostro Switch
| Codice: |
| While 1 $Msg = GUIGetMsg () Switch $msg Case $button Msgbox (0, “Ehi!”, “Vacci piano con quel mouse!” & @CRLF & “Noi poveri controlli ci pungiamo sempre”) EndSwitch Wend |
Bene solo un ultima cosa:
In AutoIt vengono attribuiti dei valori particolari ai tasti per ridimensionare, minimizzare e chiudere la finestra.
Per poterli usare è necessario includere GUIConstants.au3
Sono semplicemente delle variabili che possono essere usate come bottoni normali:
$GUI_EVENT_CLOSE = il tasto per chiudere la finestra
$GUI_EVENT_MINIMIZE = il tasto per minimizzare la finestra
$GUI_EVENT_RESTORE = il click sulla barra di windows per ripristinare la finestra
$GUI_EVENT_MAXIMIZE = il tasto per massimizzare la finestra
| Codice: |
| While 1 $Msg = GUIGetMsg () Switch $msg Case $button Msgbox (0, “Ehi!”, “Vacci piano con quel mouse!” & @CRLF & “Noi poveri controlli ci pungiamo sempre!!!”) Case $GUI_EVENT_CLOSE Exit EndSwitch Wend |
Bene, se c’è qualcosa di poco chiaro, chiedete pure…