[WELCOME]
Benvenuto a Gambas !
Gambas è un ambiente grafico di sviluppo basato su un interprete avanzato Basic.
L'obiettivo di Gambas è quello di permettere di creare programmi potenti in maniera facile e veloce. Ma la responsabilità di creare programmi puliti è tutta vostra>...
Spero vi piaccia!
Benoît Minisini
gambas@users.sourceforge.net
Ogni progetto deve avere una classe di inizio. Questa classe di inizio deve definire un metodo pubblico (public) e statico (static) denominato Main senza argomenti, che si comporterà come il metodo di inizio del tuo programma
Puoi definire la classe di inizio cliccando su di essa con il tasto destro del mouse e selezionando Classe di avvio nel menù a cascata
Non è neccessario definire un metodo Main in un Form di avvio perché ne esiste già uno predefinito.
Questo metodo predefinito inizializza il form e lo mostra, come in Visual Basic™.
[EXEC]Puoi realizzare un file eseguibile di tutto il tuo progetto. Seleziona Crea eseguibile nel menu Progetto.
Quando Gambas crea un file eseguibile, colloca il risultato direttamente nella directory del tuo progetto e il nome del file eseguibile sarà quello del tuo progetto
[OPEN]L'Intruzione OPEN di Gambas non si comporta nella stessa maniera che in Visual Basic. Non ritorna il file come un Integer, ma come un ogetto File.
In pratica, invece di digitare:
DIM handle AS Integer ... OPEN "ilmiofile" FOR READ AS #handle
Devi digitare :
DIM handle AS File ... handle = OPEN "ilmiofile" FOR READ[CATDIR]
Lo sapevi che puoi concatenare nomi di directory e nomi di file con l'operatore &/? Questo operatore aggiunge se necessario la slash ("/") in maniera tale che l'indirizzo risultante sia perfetto.
Per esempio :
PRINT "/home/gambas" &/ ".bashrc" /home/gambas/.bashrc PRINT "/home/gambas/" &/ "/tmp" &/ "foo.bar" /home/gambas/tmp/foo.bar
Non è stupendo ?
[PATH]I percorsi relativi hanno un significato speciale in Gambas. Sono sempre riferite a files dentro al tuo progetto.
Non c'è il concetto di directory corrente, e nessuna parola chiave come CHDIR per cambiarla.
Attenzione: devi usare i percorsi relativi solo per accedere ai file di progetto, perchè i percorsi assoluti non funzioneranno quando crei l'eseguibile. [GLOBAL] Non ci sono variabili globali in Gambas!
Come sostituto, dichiarale nel modulo principale come PUBLIC.
Se non hai un modulo principale nel tuo progetto, ma un form principale, allora dichiarale come STATIC PUBLIC.
Per accedere a queste variabili, devi usare il nome del modulo principale o form: MyMainModule.MyGlobalVariable o MyMainForm.MyGlobalVariable. [EMPTY]
Per sapere se una stringa è vuota non è necessario usare la funzione Len() . Puoi direttamente testare la stringa, visto che una stringa vuota è FALSE e una non vuota è TRUE.
Per esempio, invece di :
IF Len(Lamiastringa) > 0 THEN ... IF Len(Lamiastringa) = 0 THEN ...
Puoi fare :
IF Lamiastringa THEN ... IF NOT Lamiastringa THEN ...[EVENT]
Tutti i controlli e tutti gli ogetti che possono avere eventi, hanno un Osservatore di eventi e un nome di gruppo del evento.
L'osservatore di eventi coglie tutti gli eventi prodotti dall'ogetto, e il nome del gruppo del evento è il prefisso del procedimento incaricato di gestire l'evento.
Di default, questo osservatore di eventi è l'ogetto dove si è creato il controllo, e il nome di gruppo è il nome del controllo.
In questo modo, un form riceve tutti gli eventi prodotti dai controlli che tu ci hai creato dentro.
' Gambas form DIM hButton AS Button PUBLIC SUB _new() ... hButton = NEW Button(ME) AS "Ilmiopulsante" ... END PUBLIC SUB Ilmiopulsante_Click() ... END[FORM]
Un form è l'osservatore di eventi di se stesso, in questo modo puoi gestire direttamente i suoi eventi (Resize, Activate, ...) dentro il codice della sua stessa classe.
In questo modo, i nuovi arrivati da Visual Basic non si sentiranno persi :-).
[EMBED]Con Gambas puoi fare in modo che qualsiasi form venga racchiuso in un altro form!
Per fare una cosa così utile devi soltanto inizializzare il form passando un contenitore padre come ultimo argomento nel costruttore.
Per esempio :
DIM hForm AS MyDialog
DIM hSuperControl AS MyForm
' Crea un dialogo
hForm = NEW MyDialog
' Inserisce un form in questo dialogo
' Nota che questo form riceve due parametri prima del contenitore
hSuperControl = NEW MyForm(Param1, Param2, MyDialog)
' Muove e ridimensiona il form
hSuperControl.Move(8, 8, 128, 64)
Ricorda che: un form racchiuso in un altro continua ad essere un form e quindi osservatore di eventi di se stesso.
[GROUP]Tutti i controlli hanno una proprietà (Group). Quando questa proprietà è utilizzata, il prefisso del gestore di eventi è il nome del gruppo e non il nome del controllo.
Supponiamo di avere un Button chiamato btnAzione con il gestrore di eventi Click seguente :
PUBLIC SUB btnAzione_Click()
Se definisci la proprietà (Group) di btnAzione come IlMioGruppo, Allora il gestore di eventi che riceverà gli eventi del pulsante sarà il seguente:
PUBLIC SUB IlMioGruppo_Click()
Questa proprietà permette di gestire vari eventi con una semplice funzione. E i controlli dello stesso gruppo non devono per forza essere dello stesso tipo !!!
Nota : I veterani del vecchio Visual Basic riconosceranno il concetto di control array, soltanto che qui viene implementato in un modo più potente. :-)
[TAG]Tutti i controlli hanno una proprietà chiamata Tag Questa proprietà è pensata per essere usata dai programmatori e può contenere qualsiasi dato VARIANT che credi utile.
Questo è molto utile quando vuoi differenziare controlli dello stesso gruppo nello stesso gestore di eventi.
[LAST]La parola chiave LAST ritorna l'ultimo controllo che ha ricevuto un evento. E' molto utile quando vuoi scrivere un gestore di eventi che sia indipendente dal nome del controllo.
Supponiamo di voler scrivere un programma calcolatrice. Hai definito dieci pulsanti, uno per ogni numero e tutti con lo stesso group "Digit". Il valore del Tag di ogni controllo sarà il numero visualizzato da ogni pulsante. Il tuo gestore di eventi sarà più o meno così :
PUBLIC SUB Digit_Click()
Display = Display & LAST.Tag
RefreshDisplay
END
Le famose routines Left$, Right$, Mid$ di BASIC hanno un comportamento molto utile in Gambas.
Il secondo parametro di Left$ e Right$ è facoltativo, e per default è pari a uno.
Left$("Gambas") ritorna "G"
Right$("Gambas") ritorna "s"
Il secondo parametro può essere negativo e in questo caso rappresenta il numero di caratteri da non ritornare.
Left$("Gambas", -2) ritorna "Gamb"
Right$("Gambas", -2) ritorna "mbas"
Allo stesso modo, il terzo parametro di Mid$ può essere negativo, e quindi rapresentrare il numero di caratteri dalla fine della stringa da non ritornare.
Mid$("Gambas", 2, -2) ritorna "amb" [END]
Hai letto tutti i suggerimenti del giorno. Spero che ora tu sia un esperto di Gambas ! :-)
Se vuoi contribuire, invia i nuovi consigli al seguente indirizzo :
gambas@users.sourceforge.net
Grazie in anticipo !