<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Md9327</id>
	<title>Gambas-it.org - Wikipedia - Contributi dell&amp;#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Md9327"/>
	<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php/Speciale:Contributi/Md9327"/>
	<updated>2026-10-23T08:37:36Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5487</id>
		<title>Guide della comunità</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5487"/>
		<updated>2012-05-28T12:00:09Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Raccolta di guide sui componenti, sui metodi e sugli algoritmi del linguaggio Gambas, nonché su ogni altro argomento utile, scritti e mantenuti dalla comunità italiana Gambas-it&lt;br /&gt;
&lt;br /&gt;
== Componenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Come creare un componente]]&lt;br /&gt;
&lt;br /&gt;
* [[Tutorial - creare un componente: il frame]]&lt;br /&gt;
&lt;br /&gt;
==== Componenti della Comunità Gambas-it.org ====&lt;br /&gt;
&lt;br /&gt;
* [[GridBox]]&lt;br /&gt;
&lt;br /&gt;
== DrawingArea ==&lt;br /&gt;
&lt;br /&gt;
* [[DrawingArea: scrivere del testo in una DrawingArea]]&lt;br /&gt;
&lt;br /&gt;
== File immagine particolari ==&lt;br /&gt;
&lt;br /&gt;
*[[Struttura e gestione del file di tipo PNM]]&lt;br /&gt;
&lt;br /&gt;
== Funzioni ==&lt;br /&gt;
&lt;br /&gt;
* [[Scrivere una Funzione]]&lt;br /&gt;
&lt;br /&gt;
== Gambas3 &amp;amp; SubVersion ==&lt;br /&gt;
&lt;br /&gt;
* [[Gambas3 &amp;amp; SubVersion]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei dati MIDI ==&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con O.S.S.]]&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con ALSA]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei File ==&lt;br /&gt;
&lt;br /&gt;
* [[Leggere un file binario con READ]]&lt;br /&gt;
&lt;br /&gt;
* [[Leggere dati dai &amp;quot;File Descriptor&amp;quot; passati da funzioni esterne]]&lt;br /&gt;
&lt;br /&gt;
== Gestione delle immagini ==&lt;br /&gt;
&lt;br /&gt;
* [[Fondere due immagini in una sola]]&lt;br /&gt;
&lt;br /&gt;
* [[Inserire del testo in una Image ed in una Picture]]&lt;br /&gt;
&lt;br /&gt;
* [[Ruotare specularmente un'immagine e un carattere]]&lt;br /&gt;
&lt;br /&gt;
== Gestioni dei processi mediante &amp;quot;Process&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
* [[Apertura e chiusura di un processo mediante &amp;quot;Process&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]] &lt;br /&gt;
&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
&lt;br /&gt;
====Ulteriori contributi sulle librerie esterne====&lt;br /&gt;
&lt;br /&gt;
* [[Extern: richiamare funzioni esterne a Gambas]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare una &amp;quot;Libreria condivisa&amp;quot; (Shared Library) .so]]&lt;br /&gt;
&lt;br /&gt;
== Menu ==&lt;br /&gt;
&lt;br /&gt;
* [[Menu: crearli da codice e non con l'Editor-Menu]]&lt;br /&gt;
&lt;br /&gt;
== Oggetti in generale ==&lt;br /&gt;
&lt;br /&gt;
* [[Assegnare da codice più oggetti ad un Gruppo]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare array di oggetti]]&lt;br /&gt;
&lt;br /&gt;
* [[Raggiungere e gestire gli oggetti di FMain da una classe secondaria]]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
&lt;br /&gt;
== Programmi Gambas e programmi esterni ==&lt;br /&gt;
&lt;br /&gt;
* [[Usare due programmi Gambas contemporaneamente mediante &amp;quot;Process&amp;quot; e lo standard output]]&lt;br /&gt;
&lt;br /&gt;
* [[Chiudere programmi esterni]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID di un programma]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID della &amp;quot;finestra&amp;quot; di un programma ]]&lt;br /&gt;
&lt;br /&gt;
== Stringhe, caratteri e testo ==&lt;br /&gt;
&lt;br /&gt;
* [[&amp;quot;Andare a capo&amp;quot; in un oggetto di testo]]&lt;br /&gt;
&lt;br /&gt;
* [[Cercare una parola in una stringa]]&lt;br /&gt;
&lt;br /&gt;
* [[Scritta scorrevole]]&lt;br /&gt;
&lt;br /&gt;
* [[Testo verticale]]&lt;br /&gt;
&lt;br /&gt;
* [[Verifica &amp;quot;passo-passo&amp;quot; di ciascun carattere in una data stringa]]&lt;br /&gt;
&lt;br /&gt;
== Valori numerici ==&lt;br /&gt;
&lt;br /&gt;
* [[Arrotondamento di un numero con virgola mobile]]&lt;br /&gt;
&lt;br /&gt;
* [[Rappresentazione esadecimale di un dato a lunghezza variabile]]&lt;br /&gt;
&lt;br /&gt;
* [[Troncare alcune cifre decimali in un valore Float]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5486</id>
		<title>Guide della comunità</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5486"/>
		<updated>2012-05-28T11:58:26Z</updated>

		<summary type="html">&lt;p&gt;Md9327: /* Ulteriori contributi sulle librerie esterne */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Raccolta di guide sui componenti, sui metodi e sugli algoritmi del linguaggio Gambas, nonché su ogni altro argomento utile, scritti e mantenuti dalla comunità italiana Gambas-it&lt;br /&gt;
&lt;br /&gt;
== Componenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Come creare un componente]]&lt;br /&gt;
&lt;br /&gt;
* [[Tutorial - creare un componente: il frame]]&lt;br /&gt;
&lt;br /&gt;
==== Componenti della Comunità Gambas-it.org ====&lt;br /&gt;
&lt;br /&gt;
* [[GridBox]]&lt;br /&gt;
&lt;br /&gt;
== DrawingArea ==&lt;br /&gt;
&lt;br /&gt;
* [[DrawingArea: scrivere del testo in una DrawingArea]]&lt;br /&gt;
&lt;br /&gt;
== File immagine particolari ==&lt;br /&gt;
&lt;br /&gt;
*[[Struttura e gestione del file di tipo PNM]]&lt;br /&gt;
&lt;br /&gt;
== Funzioni ==&lt;br /&gt;
&lt;br /&gt;
* [[Scrivere una Funzione]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei dati MIDI ==&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con O.S.S.]]&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con ALSA]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei File ==&lt;br /&gt;
&lt;br /&gt;
* [[Leggere un file binario con READ]]&lt;br /&gt;
&lt;br /&gt;
* [[Leggere dati dai &amp;quot;File Descriptor&amp;quot; passati da funzioni esterne]]&lt;br /&gt;
&lt;br /&gt;
== Gestione delle immagini ==&lt;br /&gt;
&lt;br /&gt;
* [[Fondere due immagini in una sola]]&lt;br /&gt;
&lt;br /&gt;
* [[Inserire del testo in una Image ed in una Picture]]&lt;br /&gt;
&lt;br /&gt;
* [[Ruotare specularmente un'immagine e un carattere]]&lt;br /&gt;
&lt;br /&gt;
== Gestioni dei processi mediante &amp;quot;Process&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
* [[Apertura e chiusura di un processo mediante &amp;quot;Process&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]] &lt;br /&gt;
&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
&lt;br /&gt;
====Ulteriori contributi sulle librerie esterne====&lt;br /&gt;
&lt;br /&gt;
* [[Extern: richiamare funzioni esterne a Gambas]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare una &amp;quot;Libreria condivisa&amp;quot; (Shared Library) .so]]&lt;br /&gt;
&lt;br /&gt;
== Menu ==&lt;br /&gt;
&lt;br /&gt;
* [[Menu: crearli da codice e non con l'Editor-Menu]]&lt;br /&gt;
&lt;br /&gt;
== Oggetti in generale ==&lt;br /&gt;
&lt;br /&gt;
* [[Assegnare da codice più oggetti ad un Gruppo]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare array di oggetti]]&lt;br /&gt;
&lt;br /&gt;
* [[Raggiungere e gestire gli oggetti di FMain da una classe secondaria]]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
&lt;br /&gt;
== Programmi Gambas e programmi esterni ==&lt;br /&gt;
&lt;br /&gt;
* [[Usare due programmi Gambas contemporaneamente mediante &amp;quot;Process&amp;quot; e lo standard output]]&lt;br /&gt;
&lt;br /&gt;
* [[Chiudere programmi esterni]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID di un programma]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID della &amp;quot;finestra&amp;quot; di un programma ]]&lt;br /&gt;
&lt;br /&gt;
== Stringhe, caratteri e testo ==&lt;br /&gt;
&lt;br /&gt;
* [[&amp;quot;Andare a capo&amp;quot; in un oggetto di testo]]&lt;br /&gt;
&lt;br /&gt;
* [[Cercare una parola in una stringa]]&lt;br /&gt;
&lt;br /&gt;
* [[Scritta scorrevole]]&lt;br /&gt;
&lt;br /&gt;
* [[Testo verticale]]&lt;br /&gt;
&lt;br /&gt;
* [[Verifica &amp;quot;passo-passo&amp;quot; di ciascun carattere in una data stringa]]&lt;br /&gt;
&lt;br /&gt;
== Valori numerici ==&lt;br /&gt;
&lt;br /&gt;
* [[Arrotondamento di un numero con virgola mobile]]&lt;br /&gt;
&lt;br /&gt;
* [[Rappresentazione esadecimale di un dato a lunghezza variabile]]&lt;br /&gt;
&lt;br /&gt;
* [[Troncare alcune cifre decimali in un valore Float]]&lt;br /&gt;
&lt;br /&gt;
== Gambas3 &amp;amp; SubVersion ==&lt;br /&gt;
&lt;br /&gt;
* [[Gambas3 &amp;amp; SubVersion]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5485</id>
		<title>Guide della comunità</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5485"/>
		<updated>2012-05-28T11:57:58Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Raccolta di guide sui componenti, sui metodi e sugli algoritmi del linguaggio Gambas, nonché su ogni altro argomento utile, scritti e mantenuti dalla comunità italiana Gambas-it&lt;br /&gt;
&lt;br /&gt;
== Componenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Come creare un componente]]&lt;br /&gt;
&lt;br /&gt;
* [[Tutorial - creare un componente: il frame]]&lt;br /&gt;
&lt;br /&gt;
==== Componenti della Comunità Gambas-it.org ====&lt;br /&gt;
&lt;br /&gt;
* [[GridBox]]&lt;br /&gt;
&lt;br /&gt;
== DrawingArea ==&lt;br /&gt;
&lt;br /&gt;
* [[DrawingArea: scrivere del testo in una DrawingArea]]&lt;br /&gt;
&lt;br /&gt;
== File immagine particolari ==&lt;br /&gt;
&lt;br /&gt;
*[[Struttura e gestione del file di tipo PNM]]&lt;br /&gt;
&lt;br /&gt;
== Funzioni ==&lt;br /&gt;
&lt;br /&gt;
* [[Scrivere una Funzione]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei dati MIDI ==&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con O.S.S.]]&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con ALSA]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei File ==&lt;br /&gt;
&lt;br /&gt;
* [[Leggere un file binario con READ]]&lt;br /&gt;
&lt;br /&gt;
* [[Leggere dati dai &amp;quot;File Descriptor&amp;quot; passati da funzioni esterne]]&lt;br /&gt;
&lt;br /&gt;
== Gestione delle immagini ==&lt;br /&gt;
&lt;br /&gt;
* [[Fondere due immagini in una sola]]&lt;br /&gt;
&lt;br /&gt;
* [[Inserire del testo in una Image ed in una Picture]]&lt;br /&gt;
&lt;br /&gt;
* [[Ruotare specularmente un'immagine e un carattere]]&lt;br /&gt;
&lt;br /&gt;
== Gestioni dei processi mediante &amp;quot;Process&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
* [[Apertura e chiusura di un processo mediante &amp;quot;Process&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]] &lt;br /&gt;
&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
&lt;br /&gt;
====Ulteriori contributi sulle librerie esterne====&lt;br /&gt;
&lt;br /&gt;
* [[Extern: richiamare funzioni esterne a Gambas]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare una &amp;quot;Libreria condivisa&amp;quot; (Shared Library) .so]]&lt;br /&gt;
&lt;br /&gt;
* [[Gambas3 &amp;amp; SubVersion]]&lt;br /&gt;
&lt;br /&gt;
== Menu ==&lt;br /&gt;
&lt;br /&gt;
* [[Menu: crearli da codice e non con l'Editor-Menu]]&lt;br /&gt;
&lt;br /&gt;
== Oggetti in generale ==&lt;br /&gt;
&lt;br /&gt;
* [[Assegnare da codice più oggetti ad un Gruppo]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare array di oggetti]]&lt;br /&gt;
&lt;br /&gt;
* [[Raggiungere e gestire gli oggetti di FMain da una classe secondaria]]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
&lt;br /&gt;
== Programmi Gambas e programmi esterni ==&lt;br /&gt;
&lt;br /&gt;
* [[Usare due programmi Gambas contemporaneamente mediante &amp;quot;Process&amp;quot; e lo standard output]]&lt;br /&gt;
&lt;br /&gt;
* [[Chiudere programmi esterni]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID di un programma]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID della &amp;quot;finestra&amp;quot; di un programma ]]&lt;br /&gt;
&lt;br /&gt;
== Stringhe, caratteri e testo ==&lt;br /&gt;
&lt;br /&gt;
* [[&amp;quot;Andare a capo&amp;quot; in un oggetto di testo]]&lt;br /&gt;
&lt;br /&gt;
* [[Cercare una parola in una stringa]]&lt;br /&gt;
&lt;br /&gt;
* [[Scritta scorrevole]]&lt;br /&gt;
&lt;br /&gt;
* [[Testo verticale]]&lt;br /&gt;
&lt;br /&gt;
* [[Verifica &amp;quot;passo-passo&amp;quot; di ciascun carattere in una data stringa]]&lt;br /&gt;
&lt;br /&gt;
== Valori numerici ==&lt;br /&gt;
&lt;br /&gt;
* [[Arrotondamento di un numero con virgola mobile]]&lt;br /&gt;
&lt;br /&gt;
* [[Rappresentazione esadecimale di un dato a lunghezza variabile]]&lt;br /&gt;
&lt;br /&gt;
* [[Troncare alcune cifre decimali in un valore Float]]&lt;br /&gt;
&lt;br /&gt;
== Gambas3 &amp;amp; SubVersion ==&lt;br /&gt;
&lt;br /&gt;
* [[Gambas3 &amp;amp; SubVersion]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5484</id>
		<title>Guide della comunità</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5484"/>
		<updated>2012-05-28T11:57:38Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Raccolta di guide sui componenti, sui metodi e sugli algoritmi del linguaggio Gambas, nonché su ogni altro argomento utile, scritti e mantenuti dalla comunità italiana Gambas-it&lt;br /&gt;
&lt;br /&gt;
== Componenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Come creare un componente]]&lt;br /&gt;
&lt;br /&gt;
* [[Tutorial - creare un componente: il frame]]&lt;br /&gt;
&lt;br /&gt;
==== Componenti della Comunità Gambas-it.org ====&lt;br /&gt;
&lt;br /&gt;
* [[GridBox]]&lt;br /&gt;
&lt;br /&gt;
== DrawingArea ==&lt;br /&gt;
&lt;br /&gt;
* [[DrawingArea: scrivere del testo in una DrawingArea]]&lt;br /&gt;
&lt;br /&gt;
== File immagine particolari ==&lt;br /&gt;
&lt;br /&gt;
*[[Struttura e gestione del file di tipo PNM]]&lt;br /&gt;
&lt;br /&gt;
== Funzioni ==&lt;br /&gt;
&lt;br /&gt;
* [[Scrivere una Funzione]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei dati MIDI ==&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con O.S.S.]]&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con ALSA]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei File ==&lt;br /&gt;
&lt;br /&gt;
* [[Leggere un file binario con READ]]&lt;br /&gt;
&lt;br /&gt;
* [[Leggere dati dai &amp;quot;File Descriptor&amp;quot; passati da funzioni esterne]]&lt;br /&gt;
&lt;br /&gt;
== Gestione delle immagini ==&lt;br /&gt;
&lt;br /&gt;
* [[Fondere due immagini in una sola]]&lt;br /&gt;
&lt;br /&gt;
* [[Inserire del testo in una Image ed in una Picture]]&lt;br /&gt;
&lt;br /&gt;
* [[Ruotare specularmente un'immagine e un carattere]]&lt;br /&gt;
&lt;br /&gt;
== Gestioni dei processi mediante &amp;quot;Process&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
* [[Apertura e chiusura di un processo mediante &amp;quot;Process&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]] &lt;br /&gt;
&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
&lt;br /&gt;
====Ulteriori contributi sulle librerie esterne====&lt;br /&gt;
&lt;br /&gt;
* [[Extern: richiamare funzioni esterne a Gambas]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare una &amp;quot;Libreria condivisa&amp;quot; (Shared Library) .so]]&lt;br /&gt;
&lt;br /&gt;
* [[Gambas3 &amp;amp; SubVersion]]&lt;br /&gt;
&lt;br /&gt;
== Menu ==&lt;br /&gt;
&lt;br /&gt;
* [[Menu: crearli da codice e non con l'Editor-Menu]]&lt;br /&gt;
&lt;br /&gt;
== Oggetti in generale ==&lt;br /&gt;
&lt;br /&gt;
* [[Assegnare da codice più oggetti ad un Gruppo]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare array di oggetti]]&lt;br /&gt;
&lt;br /&gt;
* [[Raggiungere e gestire gli oggetti di FMain da una classe secondaria]]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
&lt;br /&gt;
== Programmi Gambas e programmi esterni ==&lt;br /&gt;
&lt;br /&gt;
* [[Usare due programmi Gambas contemporaneamente mediante &amp;quot;Process&amp;quot; e lo standard output]]&lt;br /&gt;
&lt;br /&gt;
* [[Chiudere programmi esterni]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID di un programma]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID della &amp;quot;finestra&amp;quot; di un programma ]]&lt;br /&gt;
&lt;br /&gt;
== Stringhe, caratteri e testo ==&lt;br /&gt;
&lt;br /&gt;
* [[&amp;quot;Andare a capo&amp;quot; in un oggetto di testo]]&lt;br /&gt;
&lt;br /&gt;
* [[Cercare una parola in una stringa]]&lt;br /&gt;
&lt;br /&gt;
* [[Scritta scorrevole]]&lt;br /&gt;
&lt;br /&gt;
* [[Testo verticale]]&lt;br /&gt;
&lt;br /&gt;
* [[Verifica &amp;quot;passo-passo&amp;quot; di ciascun carattere in una data stringa]]&lt;br /&gt;
&lt;br /&gt;
== Valori numerici ==&lt;br /&gt;
&lt;br /&gt;
* [[Arrotondamento di un numero con virgola mobile]]&lt;br /&gt;
&lt;br /&gt;
* [[Rappresentazione esadecimale di un dato a lunghezza variabile]]&lt;br /&gt;
&lt;br /&gt;
* [[Troncare alcune cifre decimali in un valore Float]]&lt;br /&gt;
&lt;br /&gt;
== SubVersion ==&lt;br /&gt;
&lt;br /&gt;
* [[Gambas3 &amp;amp; SubVersion]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5442</id>
		<title>Guide della comunità</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=5442"/>
		<updated>2012-05-27T13:58:54Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Raccolta di guide sui componenti, sui metodi e sugli algoritmi del linguaggio Gambas scritti e mantenuti dalla comunità italiana Gambas-it&lt;br /&gt;
&lt;br /&gt;
== Componenti ==&lt;br /&gt;
&lt;br /&gt;
* [[Come creare un componente]]&lt;br /&gt;
&lt;br /&gt;
* [[Tutorial - creare un componente: il frame]]&lt;br /&gt;
&lt;br /&gt;
==== Componenti della Comunità Gambas-it.org ====&lt;br /&gt;
&lt;br /&gt;
* [[GridBox]]&lt;br /&gt;
&lt;br /&gt;
== Dati di formato &amp;quot;a lunghezza variabile&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
* [[Rappresentazione esadecimale di un dato a lunghezza variabile]]&lt;br /&gt;
&lt;br /&gt;
== File immagine ==&lt;br /&gt;
&lt;br /&gt;
*[[Struttura e gestione del file di tipo PNM]]&lt;br /&gt;
&lt;br /&gt;
== Funzioni ==&lt;br /&gt;
&lt;br /&gt;
* [[Scrivere una Funzione]]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei dati MIDI ==&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con O.S.S.]]&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con ALSA]]&lt;br /&gt;
&lt;br /&gt;
== Gestione delle immagini ==&lt;br /&gt;
&lt;br /&gt;
* [[Fondere due immagini in una sola]]&lt;br /&gt;
&lt;br /&gt;
* [[Inserire del testo in una Image ed in una Picture]]&lt;br /&gt;
&lt;br /&gt;
* [[Ruotare specularmente un'immagine e un carattere]]&lt;br /&gt;
&lt;br /&gt;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]] &lt;br /&gt;
&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
&lt;br /&gt;
====Ulteriori contributi====&lt;br /&gt;
&lt;br /&gt;
* [[Extern: richiamare funzioni esterne a Gambas]]&lt;br /&gt;
&lt;br /&gt;
* [[Creare una &amp;quot;Libreria condivisa&amp;quot; (Shared Library) .so]]&lt;br /&gt;
&lt;br /&gt;
* [[Gambas3 &amp;amp; SubVersion]]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
&lt;br /&gt;
== Programmi esterni ==&lt;br /&gt;
&lt;br /&gt;
* [[Chiudere programmi esterni]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID di un programma]]&lt;br /&gt;
&lt;br /&gt;
* [[Individuare ed estrarre il PID della &amp;quot;finestra&amp;quot; di un programma ]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1956</id>
		<title>Iif()</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1956"/>
		<updated>2009-04-01T09:06:54Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''&amp;lt;destinazione&amp;gt; = iif( &amp;lt;condizione&amp;gt;, &amp;lt;valore_se_vero&amp;gt;, &amp;lt;valore_se_falso&amp;gt; )'''&lt;br /&gt;
&lt;br /&gt;
Traduzione in funzione delle istruzioni [[IF...THEN...ELSE...ENDIF]].&lt;br /&gt;
&lt;br /&gt;
La funzione valuta l'espressione contenuta nel primo parametro (&amp;lt;condizione&amp;gt;), che può essere un qualsiasi tipo di confronto tra variabili o valori di ogni tipo, e ritorna il valore impostato nel secondo parametro (&amp;lt;valore_se_vero&amp;gt;), altrimenti ritorna il terzo valore (&amp;lt;valore_se_falso&amp;gt;).&lt;br /&gt;
A differenza da alcune precedenti versioni, i tre parametri sono tutti obbligatori, e devono ritornare dati di tipo corrispondente o accettato dalla variabile di destinazione.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
----&lt;br /&gt;
  DIM var AS String = Iif( &amp;quot;ABC&amp;quot; = &amp;quot;CBA&amp;quot;, &amp;quot;Uguale&amp;quot;, &amp;quot;Diverso&amp;quot; )&lt;br /&gt;
  ...&lt;br /&gt;
  DIM num AS Integer = 10&lt;br /&gt;
  DIM var AS Integer = Iif( num &amp;gt; 10, 10, num )&lt;br /&gt;
  ...&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
E' possibile annidare più funzioni di test, in modo da simulare più istruzioni &amp;quot;IF...ELSE...ELSE IF...ENDIF&amp;quot;:&lt;br /&gt;
----&lt;br /&gt;
  DIM codice AS String = &amp;quot;IT&amp;quot;&lt;br /&gt;
  DIM nazione AS String = Iif( test = &amp;quot;IT&amp;quot;, &amp;quot;Italia&amp;quot;, Iif( test = &amp;quot;FR&amp;quot;, &amp;quot;Francia&amp;quot;, Iif( test = &amp;quot;ES&amp;quot;, &amp;quot;Spagna&amp;quot;, &amp;quot;Non valido&amp;quot;)))&lt;br /&gt;
----&lt;br /&gt;
Nell'esempio viene ritornato il nome della nazione, corrispondente al valore contenuto nella variabile codice; nel caso specifico, l'istruzione si fermerà alla prima IIF, ritornando la stringa &amp;quot;Italia&amp;quot;. Nel caso questo non sia vero, il test verrà effettuato dalla successiva IIF in cascata; se tutte le verifiche non soddisferanno i requisiti, verrà ritornata l'ultima stringa &amp;lt;false&amp;gt; dell'ultima istruzione di test.&lt;br /&gt;
&lt;br /&gt;
Sfruttando la possibilità in Gambas, di continuare un'istruzione su più righe, si può scrivere il codice dell'esempio nel modo seguente (ricordando che in questo caso è la virgola che lega le varie righe):&lt;br /&gt;
----&lt;br /&gt;
  DIM codice AS String = &amp;quot;IT&amp;quot;&lt;br /&gt;
  DIM nazione AS String = Iif( test = &amp;quot;IT&amp;quot;, &amp;quot;Italia&amp;quot;, &lt;br /&gt;
                          Iif( test = &amp;quot;FR&amp;quot;, &amp;quot;Francia&amp;quot;, &lt;br /&gt;
                          Iif( test = &amp;quot;ES&amp;quot;, &amp;quot;Spagna&amp;quot;, &amp;quot;Non valido&amp;quot;)))&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Nota''': l'utilizzo di questa funzione, in particolare nell'esecuzione di verifiche multiple (come da ultimo esempio), deve essere valutata attentamente, per non incorrere in problemi di leggibilità del codice. Di norma l'usa è limitato al test di una singola condizione, e permette di scrivere meno codice, rispetto alle istruzioni pure IF...ENDIF.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1955</id>
		<title>Iif()</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1955"/>
		<updated>2009-04-01T08:58:39Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''&amp;lt;destinazione&amp;gt; = iif( &amp;lt;condizione&amp;gt;, &amp;lt;valore_se_vero&amp;gt;, &amp;lt;valore_se_falso&amp;gt; )'''&lt;br /&gt;
&lt;br /&gt;
Traduzione in funzione delle istruzioni [[IF...THEN...ELSE...ENDIF]].&lt;br /&gt;
&lt;br /&gt;
La funzione valuta l'espressione contenuta nel primo parametro (&amp;lt;condizione&amp;gt;), che può essere un qualsiasi tipo di confronto tra variabili o valori di ogni tipo, e ritorna il valore impostato nel secondo parametro (&amp;lt;valore_se_vero&amp;gt;), altrimenti ritorna il terzo valore (&amp;lt;valore_se_falso&amp;gt;).&lt;br /&gt;
A differenza da alcune precedenti versioni, i tre parametri sono tutti obbligatori, e devono ritornare dati di tipo corrispondente o accettato dalla variabile di destinazione.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
----&lt;br /&gt;
  DIM var AS String = Iif( &amp;quot;ABC&amp;quot; = &amp;quot;CBA&amp;quot;, &amp;quot;Uguale&amp;quot;, &amp;quot;Diverso&amp;quot; )&lt;br /&gt;
  ...&lt;br /&gt;
  DIM num AS Integer = 10&lt;br /&gt;
  DIM var AS Integer = Iif( num &amp;gt; 10, 10, num )&lt;br /&gt;
  ...&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
E' possibile annidare più funzioni di test, in modo da simulare più istruzioni &amp;quot;IF...ELSE...ELSE IF...ENDIF&amp;quot;:&lt;br /&gt;
----&lt;br /&gt;
  DIM codice AS String = &amp;quot;IT&amp;quot;&lt;br /&gt;
  DIM nazione AS String = Iif( test = &amp;quot;IT&amp;quot;, &amp;quot;Italia&amp;quot;, Iif( test = &amp;quot;FR&amp;quot;, &amp;quot;Francia&amp;quot;, Iif( test = &amp;quot;ES&amp;quot;, &amp;quot;Spagna&amp;quot;, &amp;quot;Non valido&amp;quot;)))&lt;br /&gt;
----&lt;br /&gt;
Nell'esempio viene ritornato il nome della nazione, corrispondente al valore contenuto nella variabile codice; nel caso specifico, l'istruzione si fermerà alla prima IIF, ritornando la stringa &amp;quot;Italia&amp;quot;. Nel caso questo non sia vero, il test verrà effettuato dalla successiva IIF in cascata; se tutte le verifiche non soddisferanno i requisiti, verrà ritornata l'ultima stringa &amp;lt;false&amp;gt; dell'ultima istruzione di test.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1954</id>
		<title>Iif()</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1954"/>
		<updated>2009-04-01T08:38:44Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''iif( &amp;lt;test&amp;gt;, &amp;lt;true&amp;gt;, &amp;lt;false&amp;gt; )'''&lt;br /&gt;
&lt;br /&gt;
Traduzione in funzione delle istruzioni *[[IF...THEN...ELSE...ENDIF]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1953</id>
		<title>Iif()</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Iif()&amp;diff=1953"/>
		<updated>2009-04-01T08:35:19Z</updated>

		<summary type="html">&lt;p&gt;Md9327: Nuova pagina: '''iif( &amp;lt;test&amp;gt;, &amp;lt;true&amp;gt;, &amp;lt;false&amp;gt; )'''&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''iif( &amp;lt;test&amp;gt;, &amp;lt;true&amp;gt;, &amp;lt;false&amp;gt; )'''&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Le_Variabili&amp;diff=1796</id>
		<title>Le Variabili</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Le_Variabili&amp;diff=1796"/>
		<updated>2009-02-25T13:13:02Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In informatica una '''variabile''' è un contenitore che serve a memorizzare un valore su cui il programma deve eseguire delle operazioni. Più precisamente, una variabile è un nome che punta ad una locazione di memoria in cui vengono memorizzate le informazioni. Senza variabili, un programma può non eseguire nessuna operazione utile in quanto non ha modo di poter memorizzare i dati passati dall'utente ne' i risultati delle proprie operazioni. &lt;br /&gt;
Quando si programma è quindi utile, se non indispensabile, avere delle variabili su cui poter lavorare anche solo per semplici somme o sottrazioni. Ancor più utile è conoscere i tipi di variabili con le quali si ha a che fare per evitare di imbattersi in errori dovuti ad una non corrispondenza dei tipi fra i dati da immagazzinare ed il tipo di dati che una variabile può contenere. &lt;br /&gt;
&lt;br /&gt;
== Dichiarazione di variabili ==&lt;br /&gt;
[[Gambas]] è un linguaggio di programmazione tipizzato staticamente, il che significa che le variabili ed il tipo di dati che conterranno devono essere dichiarate prima del loro uso: il tipo di dati non varierà per il resto dell'esecuzione del programma: se, ad esempio, alla variabile ''A'' dichiarata di tipo ''Integer'' venisse ad un certo punto assegnato un valore di tipo stringa, Gambas segnalerebbe un errore in fase di esecuzione di tipo non corrispondente.&lt;br /&gt;
&lt;br /&gt;
== Variabili globali e variabili locali ==&lt;br /&gt;
Prima di iniziare penso sia doverosa una spiegazione sulla suddivisione di variabili locali e globali, pubbliche e private. Le variabili devono essere dichiarate all'inizio di classi, moduli o funzioni. La loro dichiarazione può essere: &lt;br /&gt;
&lt;br /&gt;
*'''locale''': ha effetto solo nella funzione in cui sono definite&lt;br /&gt;
*'''globale''': ha effetto in tutta la classe e in tutte le funzioni contenute nella stessa classe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per le variabili globali la dichiarazione avviene secondo la seguente sintassi:&lt;br /&gt;
&lt;br /&gt;
  '''[STATIC](PUBLIC|PRIVATE)''' ''Variabile'' '''[Array] AS [NEW]''' ''tipo_di_dato''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si noti che è possibile dichiarare variabili globali che sono o pubbliche ('''PUBLIC''') o private ('''PRIVATE'''). Se si specifica la parola chiave '''PUBLIC''' allora la variabile sarà accessibile anche da altre classi mentre per ciò che riguarda '''PRIVATE''', la variabile sarà accessibile solo alla classe in cui è dichiarata.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Per le variabili locali la dichiarazione avviene secondo la seguente sintassi:&lt;br /&gt;
&lt;br /&gt;
  '''[DIM]''' ''Variabile'' '''AS''' ''tipo_di_dato''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tipi di variabili ==&lt;br /&gt;
&lt;br /&gt;
Dopo aver dato uno sguardo alla dichiarazione passiamo ad analizzare quali tipi di variabili si hanno a disposizione per i propri programmi.&lt;br /&gt;
&lt;br /&gt;
* '''Boolean''' questo tipo di variabile può assumere solo i due valori logici TRUE (Vero) e FALSE (falso)&lt;br /&gt;
* '''Byte''': variabile numerica che può contenere valori da 0 a 255. Occupa una memoria di un byte quando viene dichiarata e, se non espresso diversamente, il suo valore di default è 0&lt;br /&gt;
* '''Short''': assume valori compresi tra ­-32768 e +32767. Occupa 2 bytes di memoria e il suo valore di default è 0 &lt;br /&gt;
* '''Integer''': assume valori interi tra ­-2147483648 e +2147483647. Occupa 4 bytes e il suo valore di default è 0&lt;br /&gt;
* '''Float''': può valere da -­1.79769313486232E&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; a -4.94065645841247E­&amp;lt;sup&amp;gt;324&amp;lt;/sup&amp;gt; per valori negativi e da 4.94065645841247E­&amp;lt;sup&amp;gt;324&amp;lt;/sup&amp;gt; a 1.79769313486232E&amp;lt;sup&amp;gt;308&amp;lt;/sup&amp;gt; per valori positivi. Occupa 8 bytes con valore di default uguale a 0&lt;br /&gt;
* '''Date''': variabile per la gestione delle date ed orari. Occupa 8 bytes ed il suo valore di default è NULL.&lt;br /&gt;
* '''String''': può contenere qualunque tipo di carattere alfanumerico (lettere e numeri, simboli vari); è utile per modifiche e gestioni di frasi e parole (stringhe). Variabile di 4 bytes con valore iniziale nullo.&lt;br /&gt;
* '''Variant''': variabile utile quando non si conoscono i tipi di dati con cui si deve lavorare. Può assumere tutti i tipi di variabile. 12 bytes di memoria con valore standard nullo.&lt;br /&gt;
* '''Object''': riferimento indiretto ad un oggetto. Variabile di 4 bytes con valore iniziale nullo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assegnare un valore ad una variabile ==&lt;br /&gt;
&lt;br /&gt;
Assegnare un valore ad una variabile è tra le cose più ricorrenti nella stesura di un codice. La cosa è molto semplice e segue questa sintassi:&lt;br /&gt;
&lt;br /&gt;
  ''nome_variabile'' '''=''' ''valore_variabile''&lt;br /&gt;
&lt;br /&gt;
dove ''nome_variabile'' è la nostra variabile dichiarata e ''valore_variabile'' un opportuno valore alfanumerico che sia dello stesso tipo per cui la variabile è stata dichiarata.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1789</id>
		<title>Proprietà particolari degli oggetti grafici</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1789"/>
		<updated>2009-02-25T00:20:24Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli oggetti grafici in Gambas, derivano tutti dalla classe base Control, da cui ereditano tutte le caratteristiche necessarie alla loro gestione in anbiente grafico.&lt;br /&gt;
Tra queste caratteristiche, sono da evidenziare quelle che permettono il disegno e la gestione del loro contenuto, il rispondere agli eventi esterni (es. tastiera e mouse), rappresentare graficamente e in modo diverso tra loro dati gestibili dal programma.&lt;br /&gt;
Come per tutti i moderni linguaggi, usati per la creazione di programmi in ambiente desktop (grafici), anche Gambas ha un suo set di oggetti, caratterizzati ognuno per particolari funzioni.&lt;br /&gt;
&lt;br /&gt;
Essendo questi oggetti derivati tutti dalla classe base Control, hanno alcune proprietà comuni, di cui alcune forse non troppo conosciute, ma sicuramente utili, se utilizzate correttamente all'interno di un'applicazione.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''' :&lt;br /&gt;
questa proprietà, visibile nell'elenco delle proprietà oggetto all'interno dell'ide di Gambas, permette di assegnare ogni evento scatenato dall'oggetto (vedi ad esempio il click del mouse, o la pressione di un tasto della tastiera) ad un gestore di eventi comune. Di solito, durante lo sviluppo, in ambiente Gambas ogni evento corrisponde per definizione ad particolare metodo, definito dal nome dell'oggetto e dal tipo di evento (es. Button_Click()). Questa impostazione semplifica notevolmente il programmatore nella scrittura del codice, ma in determinati casi, questo approccio può diventare molto pesante e poco gestibile; un esempio si ha quando una determinata Form, che contiene un numero elevato di oggetti, e che deve rispondere ad un numero altrettanto elevato di eventi. La proprietà Group (di tipo String) può essere usata per definire un'etichetta alternativa, a cui verranno poi associati tutti gli eventi, ovvero verrà definito un gestore alternativo che risponderà a tutti gli eventi di tutti gli oggetti, che avranno assegnato come loro Action la nuova etichetta. &lt;br /&gt;
&lt;br /&gt;
Per fare un esempio, supponiamo di avere una Form, contenente una CheckBox con nome &amp;quot;CheckBox1&amp;quot;; di default, ogni evento che viene creato per CheckBox1, usando gli strumenti di base dell'ambiente ide di Gambas, verrà creato con la nomenclatura:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB CheckBox1_&amp;lt;tipo evento&amp;gt;()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
dove &amp;lt;tipo evento&amp;gt; assumerà il valore di &amp;quot;Click&amp;quot;, per l'evento click del mouse.&lt;br /&gt;
Se invece si definisce un nome comune nella proprietà Group di ComboBox1, ad esempio &amp;quot;Event&amp;quot;, il metodo che risponderà all'evento click sarà:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Event_Click()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LAST''' :&lt;br /&gt;
Se ammettiamo di avere nella stessa Form, un serie di checkbox, e ad ognuno assegnamo lo stesso valore &amp;quot;Event&amp;quot; nella proprietà Group, l'evento &amp;quot;Event_Click()&amp;quot; risponderà in maniera comune a tutti gli eventi di tutti i checkbox presenti nella Form.&lt;br /&gt;
Questo permette di avere una gestione più centralizzata e controllata, rispetto all'avere tante funzioni (o metodi) diversi per ogni evento.&lt;br /&gt;
La domanda però sorge spontanea: ma come si fà a sapere quale CheckBox è stato cliccato?&lt;br /&gt;
La risposta è l'utilizzo della parola chiave '''LAST'''.&lt;br /&gt;
LAST contiene il riferimento all'oggetto su cui si è attivato l'ultimo evento; in questo modo è semplice conoscere quale oggetto è interessato all'evento, e agire di conseguenza. Il valore contenuto in LAST può ovviamente essere copiato in un altra variabile, e può essere usato direttamente per determinare il valore delle proprietà dell'oggetto stesso (es. LAST.Value ritorna il valore corrente della CheckBox cliccata).&lt;br /&gt;
&lt;br /&gt;
Oltre alla definizione che si può effettuare tramite la proprietà Group visibile in ambiente ide, nell'elenco delle proprietà dell'oggetto, la stessa condizione si può ottenere assegnando a livello di codice, usando il metodo statico '''Object.Attach()'''.&lt;br /&gt;
Tramite questo metodo è possibile associare gli eventi di un'oggetto ad un gestore particolare:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  Object.Attach( CheckBox1, ME, &amp;quot;Event&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
il metodo accetta tre parametri: l'oggetto (nell'esempio CheckBox1), il contenitore dell'oggetto (il puntatore alla Form=ME), il nome del gestore eventi (&amp;quot;Event&amp;quot;).&lt;br /&gt;
Questa definizione, applicata nel costruttore della Form, esegue lo stesso compito, in modo dinamico e da codice, della proprietà Group visibile in ambiente ide.&lt;br /&gt;
L'utilizzo del codice permette, inoltre, di assegnare dinamicamente gli eventi da un gestore all'altro, e credo sia facile intuire le possibilità insite in questa logica.&lt;br /&gt;
&lt;br /&gt;
Un'altra possibilità di definire un nome di evento per un oggetto creato dinamicamente, all'interno del codice, è quello di dichiararlo durante la creazione dell'oggetto stesso:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  DIM oCheckBox1 AS CheckBox&lt;br /&gt;
  ...&lt;br /&gt;
  CheckBox1 = NEW CheckBox( ME ) AS &amp;quot;MyEvent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
in questo modo, tutti gli eventi creati per l'oggetto, risponderanno al prefisso &amp;quot;MyEvent&amp;quot;, seguito dall'underscore, e dal tipo di evento:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    ...&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
E' da considerare che, come per l'attributo '''Group''', l'assegnazione dello stesso nome a più oggetti, deve poter essere gestita all'interno dell'evento, in modo da determinare in modo univoco quale oggetto è quello attivo, e che ha scatenato l'evento stesso. In questo frangente, viene in aiuto il comando '''LAST''':&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    SELECT CASE LAST&lt;br /&gt;
    CASE CheckBox1&lt;br /&gt;
      ...&lt;br /&gt;
    END SELECT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1788</id>
		<title>Proprietà particolari degli oggetti grafici</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1788"/>
		<updated>2009-02-25T00:19:40Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli oggetti grafici in Gambas, derivano tutti dalla classe base Control, da cui ereditano tutte le caratteristiche necessarie alla loro gestione in anbiente grafico.&lt;br /&gt;
Tra queste caratteristiche, sono da evidenziare quelle che permettono il disegno e la gestione del loro contenuto, il rispondere agli eventi esterni (es. tastiera e mouse), rappresentare graficamente e in modo diverso tra loro dati gestibili dal programma.&lt;br /&gt;
Come per tutti i moderni linguaggi, usati per la creazione di programmi in ambiente desktop (grafici), anche Gambas ha un suo set di oggetti, caratterizzati ognuno per particolari funzioni.&lt;br /&gt;
&lt;br /&gt;
Essendo questi oggetti derivati tutti dalla classe base Control, hanno alcune proprietà comuni, di cui alcune forse non troppo conosciute, ma sicuramente utili, se utilizzate correttamente all'interno di un'applicazione.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''' :&lt;br /&gt;
questa proprietà, visibile nell'elenco delle proprietà oggetto all'interno dell'ide di Gambas, permette di assegnare ogni evento scatenato dall'oggetto (vedi ad esempio il click del mouse, o la pressione di un tasto della tastiera) ad un gestore di eventi comune. Di solito, durante lo sviluppo, in ambiente Gambas ogni evento corrisponde per definizione ad particolare metodo, definito dal nome dell'oggetto e dal tipo di evento (es. Button_Click()). Questa impostazione semplifica notevolmente il programmatore nella scrittura del codice, ma in determinati casi, questo approccio può diventare molto pesante e poco gestibile; un esempio si ha quando una determinata Form, che contiene un numero elevato di oggetti, e che deve rispondere ad un numero altrettanto elevato di eventi. La proprietà Group (di tipo String) può essere usata per definire un'etichetta alternativa, a cui verranno poi associati tutti gli eventi, ovvero verrà definito un gestore alternativo che risponderà a tutti gli eventi di tutti gli oggetti, che avranno assegnato come loro Action la nuova etichetta. &lt;br /&gt;
&lt;br /&gt;
Per fare un esempio, supponiamo di avere una Form, contenente una CheckBox con nome &amp;quot;CheckBox1&amp;quot;; di default, ogni evento che viene creato per CheckBox1, usando gli strumenti di base dell'ambiente ide di Gambas, verrà creato con la nomenclatura:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB CheckBox1_&amp;lt;tipo evento&amp;gt;()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
dove &amp;lt;tipo evento&amp;gt; assumerà il valore di &amp;quot;Click&amp;quot;, per l'evento click del mouse.&lt;br /&gt;
Se invece si definisce un nome comune nella proprietà Group di ComboBox1, ad esempio &amp;quot;Event&amp;quot;, il metodo che risponderà all'evento click sarà:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Event_Click()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''LAST''' :&lt;br /&gt;
Se ammettiamo di avere nella stessa Form, un serie di checkbox, e ad ognuno assegnamo lo stesso valore &amp;quot;Event&amp;quot; nella proprietà Group, l'evento &amp;quot;Event_Click()&amp;quot; risponderà in maniera comune a tutti gli eventi di tutti i checkbox presenti nella Form.&lt;br /&gt;
Questo permette di avere una gestione più centralizzata e controllata, rispetto all'avere tante funzioni (o metodi) diversi per ogni evento.&lt;br /&gt;
La domanda però sorge spontanea: ma come si fà a sapere quale CheckBox è stato cliccato?&lt;br /&gt;
La risposta è l'utilizzo della parola chiave '''LAST'''.&lt;br /&gt;
LAST contiene il riferimento all'oggetto su cui si è attivato l'ultimo evento; in questo modo è semplice conoscere quale oggetto è interessato all'evento, e agire di conseguenza. Il valore contenuto in LAST può ovviamente essere copiato in un altra variabile, e può essere usato direttamente per determinare il valore delle proprietà dell'oggetto stesso (es. LAST.Value ritorna il valore corrente della CheckBox cliccata).&lt;br /&gt;
&lt;br /&gt;
Oltre alla definizione che si può effettuare tramite la proprietà Group visibile in ambiente ide, nell'elenco delle proprietà dell'oggetto, la stessa condizione si può ottenere assegnando a livello di codice, usando il metodo statico '''Object.Attach()'''.&lt;br /&gt;
Tramite questo metodo è possibile associare gli eventi di un'oggetto ad un gestore particolare:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  Object.Attach( CheckBox1, ME, &amp;quot;Event&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
il metodo accetta tre parametri: l'oggetto (nell'esempio CheckBox1), il contenitore dell'oggetto (il puntatore alla Form=ME), il nome del gestore eventi (&amp;quot;Event&amp;quot;).&lt;br /&gt;
Questa definizione, applicata nel costruttore della Form, esegue lo stesso compito, in modo dinamico e da codice, della proprietà Group visibile in ambiente ide.&lt;br /&gt;
L'utilizzo del codice permette, inoltre, di assegnare dinamicamente gli eventi da un gestore all'altro, e credo sia facile intuire le possibilità insite in questa logica.&lt;br /&gt;
&lt;br /&gt;
Un'altra possibilità di definire un nome di evento per un oggetto creato dinamicamente, all'interno del codice, è quello di dichiararlo durante la creazione dell'oggetto stesso:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  DIM oCheckBox1 AS CheckBox&lt;br /&gt;
  ...&lt;br /&gt;
  CheckBox1 = NEW CheckBox( ME ) AS &amp;quot;MyEvent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
in questo modo, tutti gli eventi creati per l'oggetto, risponderanno al prefisso &amp;quot;MyEvent&amp;quot;, seguito dall'underscore, e dal tipo di evento:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    ...&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
è da considerare che, come per l'attributo &amp;quot;Group&amp;quot;, l'assegnazione dello stesso nome a più oggetti, deve poter essere gestita all'interno dell'evento, in modo da determinare in modo univoco quale oggetto è quello attivo, e che ha scatenato l'evento stesso. In questo frangente, viene in aiuto il comando '''LAST''':&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    SELECT CASE LAST&lt;br /&gt;
    CASE CheckBox1&lt;br /&gt;
      ...&lt;br /&gt;
    END SELECT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1787</id>
		<title>Proprietà particolari degli oggetti grafici</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1787"/>
		<updated>2009-02-25T00:19:05Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli oggetti grafici in Gambas, derivano tutti dalla classe base Control, da cui ereditano tutte le caratteristiche necessarie alla loro gestione in anbiente grafico.&lt;br /&gt;
Tra queste caratteristiche, sono da evidenziare quelle che permettono il disegno e la gestione del loro contenuto, il rispondere agli eventi esterni (es. tastiera e mouse), rappresentare graficamente e in modo diverso tra loro dati gestibili dal programma.&lt;br /&gt;
Come per tutti i moderni linguaggi, usati per la creazione di programmi in ambiente desktop (grafici), anche Gambas ha un suo set di oggetti, caratterizzati ognuno per particolari funzioni.&lt;br /&gt;
&lt;br /&gt;
Essendo questi oggetti derivati tutti dalla classe base Control, hanno alcune proprietà comuni, di cui alcune forse non troppo conosciute, ma sicuramente utili, se utilizzate correttamente all'interno di un'applicazione.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''' :&lt;br /&gt;
questa proprietà, visibile nell'elenco delle proprietà oggetto all'interno dell'ide di Gambas, permette di assegnare ogni evento scatenato dall'oggetto (vedi ad esempio il click del mouse, o la pressione di un tasto della tastiera) ad un gestore di eventi comune. Di solito, durante lo sviluppo, in ambiente Gambas ogni evento corrisponde per definizione ad particolare metodo, definito dal nome dell'oggetto e dal tipo di evento (es. Button_Click()). Questa impostazione semplifica notevolmente il programmatore nella scrittura del codice, ma in determinati casi, questo approccio può diventare molto pesante e poco gestibile; un esempio si ha quando una determinata Form, che contiene un numero elevato di oggetti, e che deve rispondere ad un numero altrettanto elevato di eventi. La proprietà Group (di tipo String) può essere usata per definire un'etichetta alternativa, a cui verranno poi associati tutti gli eventi, ovvero verrà definito un gestore alternativo che risponderà a tutti gli eventi di tutti gli oggetti, che avranno assegnato come loro Action la nuova etichetta. &lt;br /&gt;
&lt;br /&gt;
Per fare un esempio, supponiamo di avere una Form, contenente una CheckBox con nome &amp;quot;CheckBox1&amp;quot;; di default, ogni evento che viene creato per CheckBox1, usando gli strumenti di base dell'ambiente ide di Gambas, verrà creato con la nomenclatura:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB CheckBox1_&amp;lt;tipo evento&amp;gt;()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
dove &amp;lt;tipo evento&amp;gt; assumerà il valore di &amp;quot;Click&amp;quot;, per l'evento click del mouse.&lt;br /&gt;
Se invece si definisce un nome comune nella proprietà Group di ComboBox1, ad esempio &amp;quot;Event&amp;quot;, il metodo che risponderà all'evento click sarà:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Event_Click()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''LAST''' :&lt;br /&gt;
Se ammettiamo di avere nella stessa Form, un serie di checkbox, e ad ognuno assegnamo lo stesso valore &amp;quot;Event&amp;quot; nella proprietà Group, l'evento &amp;quot;Event_Click()&amp;quot; risponderà in maniera comune a tutti gli eventi di tutti i checkbox presenti nella Form.&lt;br /&gt;
Questo permette di avere una gestione più centralizzata e controllata, rispetto all'avere tante funzioni (o metodi) diversi per ogni evento.&lt;br /&gt;
La domanda però sorge spontanea: ma come si fà a sapere quale CheckBox è stato cliccato?&lt;br /&gt;
La risposta è l'utilizzo della parola chiave '''LAST'''.&lt;br /&gt;
LAST contiene il riferimento all'oggetto su cui si è attivato l'ultimo evento; in questo modo è semplice conoscere quale oggetto è interessato all'evento, e agire di conseguenza. Il valore contenuto in LAST può ovviamente essere copiato in un altra variabile, e può essere usato direttamente per determinare il valore delle proprietà dell'oggetto stesso (es. LAST.Value ritorna il valore corrente della CheckBox cliccata).&lt;br /&gt;
&lt;br /&gt;
Oltre alla definizione che si può effettuare tramite la proprietà Group visibile in ambiente ide, nell'elenco delle proprietà dell'oggetto, la stessa condizione si può ottenere assegnando a livello di codice, usando il metodo statico '''Object.Attach()'''.&lt;br /&gt;
Tramite questo metodo è possibile associare gli eventi di un'oggetto ad un gestore particolare:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  Object.Attach( CheckBox1, ME, &amp;quot;Event&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
il metodo accetta tre parametri: l'oggetto (nell'esempio CheckBox1), il contenitore dell'oggetto (il puntatore alla Form=ME), il nome del gestore eventi (&amp;quot;Event&amp;quot;).&lt;br /&gt;
Questa definizione, applicata nel costruttore della Form, esegue lo stesso compito, in modo dinamico e da codice, della proprietà Group visibile in ambiente ide.&lt;br /&gt;
L'utilizzo del codice permette, inoltre, di assegnare dinamicamente gli eventi da un gestore all'altro, e credo sia facile intuire le possibilità insite in questa logica.&lt;br /&gt;
&lt;br /&gt;
Un'altra possibilità di definire un nome di evento per un oggetto creato dinamicamente, all'interno del codice, è quello di dichiararlo durante la creazione dell'oggetto stesso:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  DIM oCheckBox1 AS CheckBox&lt;br /&gt;
  ...&lt;br /&gt;
  CheckBox1 = NEW CheckBox( ME ) AS &amp;quot;MyEvent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
in questo modo, tutti gli eventi creati per l'oggetto, risponderanno al prefisso &amp;quot;MyEvent&amp;quot;, seguito dall'underscore, e dal tipo di evento:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    ...&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
è da considerare che, come per l'attributo &amp;quot;Group&amp;quot;, l'assegnazione dello stesso nome a più oggetti, deve poter essere gestita all'interno dell'evento, in modo da determinare in modo univoco quale oggetto è quello attivo, e che ha scatenato l'evento stesso. In questo frangente, viene in aiuto il comando '''LAST''':&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    SELECT CASE LAST&lt;br /&gt;
    CASE CheckBox1&lt;br /&gt;
      ...&lt;br /&gt;
    END SELECT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1786</id>
		<title>Proprietà particolari degli oggetti grafici</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1786"/>
		<updated>2009-02-24T23:53:19Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli oggetti grafici in Gambas, derivano tutti dalla classe base Control, da cui ereditano tutte le caratteristiche necessarie alla loro gestione in anbiente grafico.&lt;br /&gt;
Tra queste caratteristiche, sono da evidenziare quelle che permettono il disegno e la gestione del loro contenuto, il rispondere agli eventi esterni (es. tastiera e mouse), rappresentare graficamente e in modo diverso tra loro dati gestibili dal programma.&lt;br /&gt;
Come per tutti i moderni linguaggi, usati per la creazione di programmi in ambiente desktop (grafici), anche Gambas ha un suo set di oggetti, caratterizzati ognuno per particolari funzioni.&lt;br /&gt;
&lt;br /&gt;
Essendo questi oggetti derivati tutti dalla classe base Control, hanno alcune proprietà comuni, di cui alcune forse non troppo conosciute, ma sicuramente utili, se utilizzate correttamente all'interno di un'applicazione.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''' :&lt;br /&gt;
questa proprietà, visibile nell'elenco delle proprietà oggetto all'interno dell'ide di Gambas, permette di assegnare ogni evento scatenato dall'oggetto (vedi ad esempio il click del mouse, o la pressione di un tasto della tastiera) ad un gestore di eventi comune. Di solito, durante lo sviluppo, in ambiente Gambas ogni evento corrisponde per definizione ad particolare metodo, definito dal nome dell'oggetto e dal tipo di evento (es. Button_Click()). Questa impostazione semplifica notevolmente il programmatore nella scrittura del codice, ma in determinati casi, questo approccio può diventare molto pesante e poco gestibile; un esempio si ha quando una determinata Form, che contiene un numero elevato di oggetti, e che deve rispondere ad un numero altrettanto elevato di eventi. La proprietà Group (di tipo String) può essere usata per definire un'etichetta alternativa, a cui verranno poi associati tutti gli eventi, ovvero verrà definito un gestore alternativo che risponderà a tutti gli eventi di tutti gli oggetti, che avranno assegnato come loro Action la nuova etichetta. &lt;br /&gt;
&lt;br /&gt;
Per fare un esempio, supponiamo di avere una Form, contenente una CheckBox con nome &amp;quot;CheckBox1&amp;quot;; di default, ogni evento che viene creato per CheckBox1, usando gli strumenti di base dell'ambiente ide di Gambas, verrà creato con la nomenclatura:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB CheckBox1_&amp;lt;tipo evento&amp;gt;()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
dove &amp;lt;tipo evento&amp;gt; assumerà il valore di &amp;quot;Click&amp;quot;, per l'evento click del mouse.&lt;br /&gt;
Se invece si definisce un nome comune nella proprietà Group di ComboBox1, ad esempio &amp;quot;Event&amp;quot;, il metodo che risponderà all'evento click sarà:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Event_Click()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Se ammettiamo di avere nella stessa Form, un serie di checkbox, e ad ognuno assegnamo lo stesso valore &amp;quot;Event&amp;quot; nella proprietà Group, l'evento &amp;quot;Event_Click()&amp;quot; risponderà in maniera comune a tutti gli eventi di tutti i checkbox presenti nella Form.&lt;br /&gt;
Questo permette di avere una gestione più centralizzata e controllata, rispetto all'avere tante funzioni (o metodi) diversi per ogni evento.&lt;br /&gt;
La domanda però sorge spontanea: ma come si fà a sapere quale CheckBox è stato cliccato?&lt;br /&gt;
La risposta è l'utilizzo della parola chiave '''LAST'''.&lt;br /&gt;
LAST contiene il riferimento all'oggetto su cui si è attivato l'ultimo evento; in questo modo è semplice conoscere quale oggetto è interessato all'evento, e agire di conseguenza. Il valore contenuto in LAST può ovviamente essere copiato in un altra variabile, e può essere usato direttamente per determinare il valore delle proprietà dell'oggetto stesso (es. LAST.Value ritorna il valore corrente della CheckBox cliccata).&lt;br /&gt;
&lt;br /&gt;
Oltre alla definizione che si può effettuare tramite la proprietà Group visibile in ambiente ide, nell'elenco delle proprietà dell'oggetto, la stessa condizione si può ottenere assegnando a livello di codice, usando il metodo statico '''Object.Attach()'''.&lt;br /&gt;
Tramite questo metodo è possibile associare gli eventi di un'oggetto ad un gestore particolare:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  Object.Attach( CheckBox1, ME, &amp;quot;Event&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
il metodo accetta tre parametri: l'oggetto (nell'esempio CheckBox1), il contenitore dell'oggetto (il puntatore alla Form=ME), il nome del gestore eventi (&amp;quot;Event&amp;quot;).&lt;br /&gt;
Questa definizione, applicata nel costruttore della Form, esegue lo stesso compito, in modo dinamico e da codice, della proprietà Group visibile in ambiente ide.&lt;br /&gt;
L'utilizzo del codice permette, inoltre, di assegnare dinamicamente gli eventi da un gestore all'altro, e credo sia facile intuire le possibilità insite in questa logica.&lt;br /&gt;
&lt;br /&gt;
Un'altra possibilità di definire un nome di evento per un oggetto creato dinamicamente, all'interno del codice, è quello di dichiararlo durante la creazione dell'oggetto stesso:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  DIM oCheckBox1 AS CheckBox&lt;br /&gt;
  ...&lt;br /&gt;
  CheckBox1 = NEW CheckBox( ME ) AS &amp;quot;MyEvent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
in questo modo, tutti gli eventi creati per l'oggetto, risponderanno al prefisso &amp;quot;MyEvent&amp;quot;, seguito dall'underscore, e dal tipo di evento:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    ...&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
è da considerare che, come per l'attributo &amp;quot;Group&amp;quot;, l'assegnazione dello stesso nome a più oggetti, deve poter essere gestita all'interno dell'evento, in modo da determinare in modo univoco quale oggetto è quello attivo, e che ha scatenato l'evento stesso. In questo frangente, viene in aiuto il comando '''LAST''':&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    SELECT CASE LAST&lt;br /&gt;
    CASE CheckBox1&lt;br /&gt;
      ...&lt;br /&gt;
    END SELECT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1785</id>
		<title>Proprietà particolari degli oggetti grafici</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1785"/>
		<updated>2009-02-24T23:52:37Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli oggetti grafici in Gambas, derivano tutti dalla classe base Control, da cui ereditano tutte le caratteristiche necessarie alla loro gestione in anbiente grafico.&lt;br /&gt;
Tra queste caratteristiche, sono da evidenziare quelle che permettono il disegno e la gestione del loro contenuto, il rispondere agli eventi esterni (es. tastiera e mouse), rappresentare graficamente e in modo diverso tra loro dati gestibili dal programma.&lt;br /&gt;
Come per tutti i moderni linguaggi, usati per la creazione di programmi in ambiente desktop (grafici), anche Gambas ha un suo set di oggetti, caratterizzati ognuno per particolari funzioni.&lt;br /&gt;
&lt;br /&gt;
Essendo questi oggetti derivati tutti dalla classe base Control, hanno alcune proprietà comuni, di cui alcune forse non troppo conosciute, ma sicuramente utili, se utilizzate correttamente all'interno di un'applicazione.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''' :&lt;br /&gt;
questa proprietà, visibile nell'elenco delle proprietà oggetto all'interno dell'ide di Gambas, permette di assegnare ogni evento scatenato dall'oggetto (vedi ad esempio il click del mouse, o la pressione di un tasto della tastiera) ad un gestore di eventi comune. Di solito, durante lo sviluppo, in ambiente Gambas ogni evento corrisponde per definizione ad particolare metodo, definito dal nome dell'oggetto e dal tipo di evento (es. Button_Click()). Questa impostazione semplifica notevolmente il programmatore nella scrittura del codice, ma in determinati casi, questo approccio può diventare molto pesante e poco gestibile; un esempio si ha quando una determinata Form, che contiene un numero elevato di oggetti, e che deve rispondere ad un numero altrettanto elevato di eventi. La proprietà Group (di tipo String) può essere usata per definire un'etichetta alternativa, a cui verranno poi associati tutti gli eventi, ovvero verrà definito un gestore alternativo che risponderà a tutti gli eventi di tutti gli oggetti, che avranno assegnato come loro Action la nuova etichetta. &lt;br /&gt;
&lt;br /&gt;
Per fare un esempio, supponiamo di avere una Form, contenente una CheckBox con nome &amp;quot;CheckBox1&amp;quot;; di default, ogni evento che viene creato per CheckBox1, usando gli strumenti di base dell'ambiente ide di Gambas, verrà creato con la nomenclatura:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB CheckBox1_&amp;lt;tipo evento&amp;gt;()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
dove &amp;lt;tipo evento&amp;gt; assumerà il valore di &amp;quot;Click&amp;quot;, per l'evento click del mouse.&lt;br /&gt;
Se invece si definisce un nome comune nella proprietà Group di ComboBox1, ad esempio &amp;quot;Event&amp;quot;, il metodo che risponderà all'evento click sarà:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Event_Click()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Se ammettiamo di avere nella stessa Form, un serie di checkbox, e ad ognuno assegnamo lo stesso valore &amp;quot;Event&amp;quot; nella proprietà Group, l'evento &amp;quot;Event_Click()&amp;quot; risponderà in maniera comune a tutti gli eventi di tutti i checkbox presenti nella Form.&lt;br /&gt;
Questo permette di avere una gestione più centralizzata e controllata, rispetto all'avere tante funzioni (o metodi) diversi per ogni evento.&lt;br /&gt;
La domanda però sorge spontanea: ma come si fà a sapere quale CheckBox è stato cliccato?&lt;br /&gt;
La risposta è l'utilizzo della parola chiave '''LAST'''.&lt;br /&gt;
LAST contiene il riferimento all'oggetto su cui si è attivato l'ultimo evento; in questo modo è semplice conoscere quale oggetto è interessato all'evento, e agire di conseguenza. Il valore contenuto in LAST può ovviamente essere copiato in un altra variabile, e può essere usato direttamente per determinare il valore delle proprietà dell'oggetto stesso (es. LAST.Value ritorna il valore corrente della CheckBox cliccata).&lt;br /&gt;
&lt;br /&gt;
Oltre alla definizione che si può effettuare tramite la proprietà Group visibile in ambiente ide, nell'elenco delle proprietà dell'oggetto, la stessa condizione si può ottenere assegnando a livello di codice, usando il metodo statico '''Object.Attach()'''.&lt;br /&gt;
Tramite questo metodo è possibile associare gli eventi di un'oggetto ad un gestore particolare:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  Object.Attach( CheckBox1, ME, &amp;quot;Event&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
il metodo accetta tre parametri: l'oggetto (nell'esempio CheckBox1), il contenitore dell'oggetto (il puntatore alla Form=ME), il nome del gestore eventi (&amp;quot;Event&amp;quot;).&lt;br /&gt;
Questa definizione, applicata nel costruttore della Form, esegue lo stesso compito, in modo dinamico e da codice, della proprietà Group visibile in ambiente ide.&lt;br /&gt;
L'utilizzo del codice permette, inoltre, di assegnare dinamicamente gli eventi da un gestore all'altro, e credo sia facile intuire le possibilità insite in questa logica.&lt;br /&gt;
&lt;br /&gt;
Un'altra possibilità di definire un nome di evento per un oggetto creato dinamicamente, all'interno del codice, è quello di dichiararlo durante la creazione dell'oggetto stesso:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  DIM oCheckBox1 AS CheckBox&lt;br /&gt;
  ...&lt;br /&gt;
  CheckBox1 = NEW CheckBox( ME ) AS &amp;quot;MyEvent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
in questo modo, tutti gli eventi creati per l'oggetto, risponderanno al prefisso &amp;quot;MyEvent&amp;quot;, seguito dall'underscore, e dal tipo di evento:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    ...&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
E' da considerare che, come per l'attributo &amp;quot;Group&amp;quot;, l'assegnazione dello stesso nome a più oggetti, deve poter essere gestita all'interno dell'evento, in modo da determinare in modo univoco quale oggetto è quello attivo, e che ha scatenato l'evento stesso. In questo frangente, viene in aiuto il comando '''LAST''':&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    SELECT CASE LAST&lt;br /&gt;
    CASE CheckBox1&lt;br /&gt;
      ...&lt;br /&gt;
    END SELECT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1784</id>
		<title>Proprietà particolari degli oggetti grafici</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Propriet%C3%A0_particolari_degli_oggetti_grafici&amp;diff=1784"/>
		<updated>2009-02-24T23:52:10Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gli oggetti grafici in Gambas, derivano tutti dalla classe base Control, da cui ereditano tutte le caratteristiche necessarie alla loro gestione in anbiente grafico.&lt;br /&gt;
Tra queste caratteristiche, sono da evidenziare quelle che permettono il disegno e la gestione del loro contenuto, il rispondere agli eventi esterni (es. tastiera e mouse), rappresentare graficamente e in modo diverso tra loro dati gestibili dal programma.&lt;br /&gt;
Come per tutti i moderni linguaggi, usati per la creazione di programmi in ambiente desktop (grafici), anche Gambas ha un suo set di oggetti, caratterizzati ognuno per particolari funzioni.&lt;br /&gt;
&lt;br /&gt;
Essendo questi oggetti derivati tutti dalla classe base Control, hanno alcune proprietà comuni, di cui alcune forse non troppo conosciute, ma sicuramente utili, se utilizzate correttamente all'interno di un'applicazione.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Group''' :&lt;br /&gt;
questa proprietà, visibile nell'elenco delle proprietà oggetto all'interno dell'ide di Gambas, permette di assegnare ogni evento scatenato dall'oggetto (vedi ad esempio il click del mouse, o la pressione di un tasto della tastiera) ad un gestore di eventi comune. Di solito, durante lo sviluppo, in ambiente Gambas ogni evento corrisponde per definizione ad particolare metodo, definito dal nome dell'oggetto e dal tipo di evento (es. Button_Click()). Questa impostazione semplifica notevolmente il programmatore nella scrittura del codice, ma in determinati casi, questo approccio può diventare molto pesante e poco gestibile; un esempio si ha quando una determinata Form, che contiene un numero elevato di oggetti, e che deve rispondere ad un numero altrettanto elevato di eventi. La proprietà Group (di tipo String) può essere usata per definire un'etichetta alternativa, a cui verranno poi associati tutti gli eventi, ovvero verrà definito un gestore alternativo che risponderà a tutti gli eventi di tutti gli oggetti, che avranno assegnato come loro Action la nuova etichetta. &lt;br /&gt;
&lt;br /&gt;
Per fare un esempio, supponiamo di avere una Form, contenente una CheckBox con nome &amp;quot;CheckBox1&amp;quot;; di default, ogni evento che viene creato per CheckBox1, usando gli strumenti di base dell'ambiente ide di Gambas, verrà creato con la nomenclatura:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB CheckBox1_&amp;lt;tipo evento&amp;gt;()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
dove &amp;lt;tipo evento&amp;gt; assumerà il valore di &amp;quot;Click&amp;quot;, per l'evento click del mouse.&lt;br /&gt;
Se invece si definisce un nome comune nella proprietà Group di ComboBox1, ad esempio &amp;quot;Event&amp;quot;, il metodo che risponderà all'evento click sarà:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Event_Click()&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Se ammettiamo di avere nella stessa Form, un serie di checkbox, e ad ognuno assegnamo lo stesso valore &amp;quot;Event&amp;quot; nella proprietà Group, l'evento &amp;quot;Event_Click()&amp;quot; risponderà in maniera comune a tutti gli eventi di tutti i checkbox presenti nella Form.&lt;br /&gt;
Questo permette di avere una gestione più centralizzata e controllata, rispetto all'avere tante funzioni (o metodi) diversi per ogni evento.&lt;br /&gt;
La domanda però sorge spontanea: ma come si fà a sapere quale CheckBox è stato cliccato?&lt;br /&gt;
La risposta è l'utilizzo della parola chiave '''LAST'''.&lt;br /&gt;
LAST contiene il riferimento all'oggetto su cui si è attivato l'ultimo evento; in questo modo è semplice conoscere quale oggetto è interessato all'evento, e agire di conseguenza. Il valore contenuto in LAST può ovviamente essere copiato in un altra variabile, e può essere usato direttamente per determinare il valore delle proprietà dell'oggetto stesso (es. LAST.Value ritorna il valore corrente della CheckBox cliccata).&lt;br /&gt;
&lt;br /&gt;
Oltre alla definizione che si può effettuare tramite la proprietà Group visibile in ambiente ide, nell'elenco delle proprietà dell'oggetto, la stessa condizione si può ottenere assegnando a livello di codice, usando il metodo statico '''Object.Attach()'''.&lt;br /&gt;
Tramite questo metodo è possibile associare gli eventi di un'oggetto ad un gestore particolare:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  Object.Attach( CheckBox1, ME, &amp;quot;Event&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
il metodo accetta tre parametri: l'oggetto (nell'esempio CheckBox1), il contenitore dell'oggetto (il puntatore alla Form=ME), il nome del gestore eventi (&amp;quot;Event&amp;quot;).&lt;br /&gt;
Questa definizione, applicata nel costruttore della Form, esegue lo stesso compito, in modo dinamico e da codice, della proprietà Group visibile in ambiente ide.&lt;br /&gt;
L'utilizzo del codice permette, inoltre, di assegnare dinamicamente gli eventi da un gestore all'altro, e credo sia facile intuire le possibilità insite in questa logica.&lt;br /&gt;
&lt;br /&gt;
Un'altra possibilità di definire un nome di evento per un oggetto creato dinamicamente, all'interno del codice, è quello di dichiararlo durante la creazione dell'oggetto stesso:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  DIM oCheckBox1 AS CheckBox&lt;br /&gt;
&lt;br /&gt;
  CheckBox1 = NEW CheckBox( ME ) AS &amp;quot;MyEvent&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
in questo modo, tutti gli eventi creati per l'oggetto, risponderanno al prefisso &amp;quot;MyEvent&amp;quot;, seguito dall'underscore, e dal tipo di evento:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    ...&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
E' da considerare che, come per l'attributo &amp;quot;Group&amp;quot;, l'assegnazione dello stesso nome a più oggetti, deve poter essere gestita all'interno dell'evento, in modo da determinare in modo univoco quale oggetto è quello attivo, e che ha scatenato l'evento stesso. In questo frangente, viene in aiuto il comando '''LAST''':&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB MyEvent_Change()&lt;br /&gt;
    SELECT CASE LAST&lt;br /&gt;
    CASE CheckBox1&lt;br /&gt;
      ...&lt;br /&gt;
    END SELECT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Elenco_degli_oggetti_grafici&amp;diff=1782</id>
		<title>Elenco degli oggetti grafici</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Elenco_degli_oggetti_grafici&amp;diff=1782"/>
		<updated>2009-02-24T23:38:38Z</updated>

		<summary type="html">&lt;p&gt;Md9327: Nuova pagina: *Button http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_button.png  ---- *CheckBox http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_checkbox.png  ---...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Button]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_button.png &lt;br /&gt;
----&lt;br /&gt;
*[[CheckBox]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_checkbox.png &lt;br /&gt;
----&lt;br /&gt;
*[[Label]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_label.png &lt;br /&gt;
----&lt;br /&gt;
*[[ListBox]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_listbox.png &lt;br /&gt;
----&lt;br /&gt;
*[[PictureBox]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_picturebox.png &lt;br /&gt;
----&lt;br /&gt;
*[[Progressbar]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_progress.png &lt;br /&gt;
----&lt;br /&gt;
*[[RadioButton]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_radio.png &lt;br /&gt;
----&lt;br /&gt;
*[[Slider]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_slider.png &lt;br /&gt;
----&lt;br /&gt;
*[[TextLabel]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_textlabel.png &lt;br /&gt;
----&lt;br /&gt;
*[[ToolButton]] http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_toolbutton.png &lt;br /&gt;
----&lt;br /&gt;
*[[Separator]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1736</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1736"/>
		<updated>2009-01-11T02:10:09Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
La classe è anche utilizzata come classe base per gli oggetti Application delle librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''ActiveControl''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ritorna il controllo che ha attualmente il fuoco. &lt;br /&gt;
&lt;br /&gt;
'''ActiveWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ritorna la finestra corrente attiva, ad esempio quella proprietaria del controllo che ha attualmente il fuoco. &lt;br /&gt;
&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Busy''' : (intero, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Modifica lo stato di occupato dell'applicazione.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
Attenzione a decrementare questa proprietà, se l'elaborazione fallisce (vedi TRY...CATCH)! &lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Embedder''' : (puntatore, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sEnv AS String&lt;br /&gt;
    FOR EACH sEnv IN Application.Env&lt;br /&gt;
      PRINT sEnv&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Font''' : (oggetto, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ritorna o modifica globalmente il font usato dall'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''MainWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ritorna la finestra principale dell'applicazione.&lt;br /&gt;
La finestra principale è la prima finestra (o Form) creata nell'applicazione. La chiusura della finestra principale implica la chiusura di tutte le finestre aperte, e il termine dell'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
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'.&lt;br /&gt;
&lt;br /&gt;
'''Theme''' : (stringa, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ritorna o imposta globalmente il tema dell'applicazione.&lt;br /&gt;
Al momento, il valore viene usato solo dalla classe Stock, per la selezione di un blocco di icone. &lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
&lt;br /&gt;
Ritorna il titolo dell'applicazione, così come impostato nel progetto. &lt;br /&gt;
&lt;br /&gt;
'''ToolTip''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ritorna un oggetto virtuale, usato per configurare i messaggi tooltip. Le proprietà dell'oggetto virtuale, permettono di abilitare globalmente i tooltip, e di definirne il font.&lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version.&lt;br /&gt;
E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
  PRINT Application.Version&lt;br /&gt;
  &amp;gt; 0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
La classe Application, nella libreria &amp;quot;gb&amp;quot; non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  Class MyApplication&lt;br /&gt;
&lt;br /&gt;
    STATIC PUBLIC SUB Run()&lt;br /&gt;
      ...&lt;br /&gt;
    END&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1735</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1735"/>
		<updated>2009-01-11T02:08:48Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
La classe è anche utilizzata come classe base per gli oggetti Application delle librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''ActiveControl''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna il controllo che ha attualmente il fuoco. &lt;br /&gt;
&lt;br /&gt;
'''ActiveWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna la finestra corrente attiva, ad esempio quella proprietaria del controllo che ha attualmente il fuoco. &lt;br /&gt;
&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Busy''' : (intero, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Modifica lo stato di occupato dell'applicazione.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
Attenzione a decrementare questa proprietà, se l'elaborazione fallisce (vedi TRY...CATCH)! &lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Embedder''' : (puntatore, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sEnv AS String&lt;br /&gt;
    FOR EACH sEnv IN Application.Env&lt;br /&gt;
      PRINT sEnv&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Font''' : (oggetto, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna o modifica globalmente il font usato dall'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''MainWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna la finestra principale dell'applicazione.&lt;br /&gt;
La finestra principale è la prima finestra (o Form) creata nell'applicazione. La chiusura della finestra principale implica la chiusura di tutte le finestre aperte, e il termine dell'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
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'.&lt;br /&gt;
&lt;br /&gt;
'''Theme''' : (stringa, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna o imposta globalmente il tema dell'applicazione.&lt;br /&gt;
Al momento, il valore viene usato solo dalla classe Stock, per la selezione di un blocco di icone. &lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna il titolo dell'applicazione, così come impostato nel progetto. &lt;br /&gt;
&lt;br /&gt;
'''ToolTip''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna un oggetto virtuale, usato per configurare i messaggi tooltip. Le proprietà dell'oggetto virtuale, permettono di abilitare globalmente i tooltip, e di definirne il font.&lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version.&lt;br /&gt;
E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
  PRINT Application.Version&lt;br /&gt;
  &amp;gt; 0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
La classe Application, nella libreria &amp;quot;gb&amp;quot; non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  Class MyApplication&lt;br /&gt;
&lt;br /&gt;
    STATIC PUBLIC SUB Run()&lt;br /&gt;
      ...&lt;br /&gt;
    END&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1734</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1734"/>
		<updated>2009-01-11T02:02:38Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
La classe è anche utilizzata come classe base per gli oggetti Application delle librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''ActiveControl''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna il controllo che ha attualmente il fuoco. &lt;br /&gt;
&lt;br /&gt;
'''ActiveWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Ritorna la finestra corrente attiva, ad esempio quella proprietaria del controllo che ha attualmente il fuoco. &lt;br /&gt;
&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Busy''' : (intero, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
Modifica lo stato di occupato dell'applicazione.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
Attenzione a decrementare questa proprietà, se l'elaborazione fallisce (vedi TRY...CATCH)! &lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Embedder''' : (puntatore, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sEnv AS String&lt;br /&gt;
    FOR EACH sEnv IN Application.Env&lt;br /&gt;
      PRINT sEnv&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Font''' : (oggetto, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''MainWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
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'.&lt;br /&gt;
&lt;br /&gt;
'''Theme''' : (stringa, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna il titolo dell'applicazione, così come impostato nel progetto. &lt;br /&gt;
&lt;br /&gt;
'''ToolTip''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version.&lt;br /&gt;
E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
  PRINT Application.Version&lt;br /&gt;
  &amp;gt; 0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
La classe Application, nella libreria &amp;quot;gb&amp;quot; non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  Class MyApplication&lt;br /&gt;
&lt;br /&gt;
    STATIC PUBLIC SUB Run()&lt;br /&gt;
      ...&lt;br /&gt;
    END&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1733</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1733"/>
		<updated>2009-01-11T01:56:46Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
La classe è anche utilizzata come classe base per gli oggetti Application delle librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''ActiveControl''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''ActiveWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Busy''' : (intero, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Embedder''' : (puntatore, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sEnv AS String&lt;br /&gt;
    FOR EACH sEnv IN Application.Env&lt;br /&gt;
      PRINT sEnv&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Font''' : (oggetto, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''MainWindow''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
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'.&lt;br /&gt;
&lt;br /&gt;
'''Theme''' : (stringa, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna il titolo dell'applicazione, così come impostato nel progetto. &lt;br /&gt;
&lt;br /&gt;
'''ToolTip''' : (oggetto, solo lettura, solo librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version.&lt;br /&gt;
E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
  PRINT Application.Version&lt;br /&gt;
  &amp;gt; 0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
La classe Application, nella libreria &amp;quot;gb&amp;quot; non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  Class MyApplication&lt;br /&gt;
&lt;br /&gt;
    STATIC PUBLIC SUB Run()&lt;br /&gt;
      ...&lt;br /&gt;
    END&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Contenuto_delle_librerie&amp;diff=1731</id>
		<title>Contenuto delle librerie</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Contenuto_delle_librerie&amp;diff=1731"/>
		<updated>2009-01-11T01:31:31Z</updated>

		<summary type="html">&lt;p&gt;Md9327: Contenuto delle librerie moved to Elenco delle librerie e loro contenuto&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Elenco delle librerie e loro contenuto]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1727</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1727"/>
		<updated>2009-01-11T01:29:21Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
La classe è anche utilizzata come classe base per gli oggetti Application delle librerie &amp;quot;gb.gtk&amp;quot; e &amp;quot;gb.qt&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sEnv AS String&lt;br /&gt;
    FOR EACH sEnv IN Application.Env&lt;br /&gt;
      PRINT sEnv&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
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'.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna il titolo dell'applicazione, così come impostato nel progetto. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version.&lt;br /&gt;
E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
  PRINT Application.Version&lt;br /&gt;
  &amp;gt; 0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
La classe Application, nella libreria &amp;quot;gb&amp;quot; non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  Class MyApplication&lt;br /&gt;
&lt;br /&gt;
    STATIC PUBLIC SUB Run()&lt;br /&gt;
      ...&lt;br /&gt;
    END&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1726</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1726"/>
		<updated>2009-01-11T01:28:01Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sEnv AS String&lt;br /&gt;
    FOR EACH sEnv IN Application.Env&lt;br /&gt;
      PRINT sEnv&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
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'.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna il titolo dell'applicazione, così come impostato nel progetto. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version.&lt;br /&gt;
E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.&lt;br /&gt;
&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
  PRINT Application.Version&lt;br /&gt;
  &amp;gt; 0.0.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
La classe Application, nella libreria &amp;quot;gb&amp;quot; non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  Class MyApplication&lt;br /&gt;
&lt;br /&gt;
    STATIC PUBLIC SUB Run()&lt;br /&gt;
      ...&lt;br /&gt;
    END&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1725</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1725"/>
		<updated>2009-01-11T01:26:35Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sEnv AS String&lt;br /&gt;
    FOR EACH sEnv IN Application.Env&lt;br /&gt;
      PRINT sEnv&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
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'.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna il titolo dell'applicazione, così come impostato nel progetto. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
Il valore comprende 3 numeri, separati da un punto, che identificano: mayor version, minor version, release version.&lt;br /&gt;
E' da tener presente che la generazione di un nuovo eseguibile in ambiente IDE, aggiorna automaticamente la versione alla release successiva.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
La classe Application, nella libreria &amp;quot;gb&amp;quot; non ha metodi, nella sua struttura di base; eventuali funzionalità possono essere aggiunte, creando una nuova classe derivata da Application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
  Class MyApplication&lt;br /&gt;
&lt;br /&gt;
    STATIC PUBLIC SUB Run()&lt;br /&gt;
      ...&lt;br /&gt;
    END&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1724</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1724"/>
		<updated>2009-01-11T01:11:50Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Main()&lt;br /&gt;
    DIM sArg AS String&lt;br /&gt;
    FOR EACH sArg IN Application.Args&lt;br /&gt;
      PRINT sArg&lt;br /&gt;
    NEXT&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il titolo dell'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
nessuno&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
Anche se statico, è possibile creare oggetti Application derivati da questo, personalizzabili a seconda delle proprie esigenze (aggiunta di altre proprietà e/o metodi).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1723</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1723"/>
		<updated>2009-01-11T01:11:17Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
----&lt;br /&gt;
PUBLIC SUB Main()&lt;br /&gt;
  DIM sArg AS String&lt;br /&gt;
  FOR EACH sArg IN Application.Args&lt;br /&gt;
    PRINT sArg&lt;br /&gt;
  NEXT&lt;br /&gt;
END&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il titolo dell'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
nessuno&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
Anche se statico, è possibile creare oggetti Application derivati da questo, personalizzabili a seconda delle proprie esigenze (aggiunta di altre proprietà e/o metodi).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1722</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1722"/>
		<updated>2009-01-11T01:10:12Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Proprietà'''''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
Esempio di lettura:&lt;br /&gt;
&lt;br /&gt;
PUBLIC SUB Main()&lt;br /&gt;
  DIM sArg AS String&lt;br /&gt;
  FOR EACH sArg IN Application.Args&lt;br /&gt;
    PRINT sArg&lt;br /&gt;
  NEXT&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il titolo dell'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Metodi'''''&lt;br /&gt;
----&lt;br /&gt;
nessuno&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Eventi'''''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Descrizione'''''&lt;br /&gt;
----&lt;br /&gt;
Anche se statico, è possibile creare oggetti Application derivati da questo, personalizzabili a seconda delle proprie esigenze (aggiunta di altre proprietà e/o metodi).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Esempi'''''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1721</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1721"/>
		<updated>2009-01-11T01:07:27Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Tipo'''''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proprietà'''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il titolo dell'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Metodi'''&lt;br /&gt;
----&lt;br /&gt;
nessuno&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Eventi'''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Descrizione'''&lt;br /&gt;
----&lt;br /&gt;
Anche se statico, è possibile creare oggetti Application derivati da questo, personalizzabili a seconda delle proprie esigenze (aggiunta di altre proprietà e/o metodi).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Esempi'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1720</id>
		<title>Application</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Application&amp;diff=1720"/>
		<updated>2009-01-11T01:07:08Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questa classe tutte le informazioni relative all'applicazione corrente, e garantisce l'accesso all'ambiente e alla linea di comando del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tipo'''&lt;br /&gt;
----&lt;br /&gt;
La classe è di tipo statico, metodi e proprietà compresi, ovvero è sempre presente in memoria, ed è accessibile da tutti i componenti del processo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Proprietà'''&lt;br /&gt;
----&lt;br /&gt;
'''Args''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
Il primo elemento ritornato (argumento #0) è sempre il nome del programma.&lt;br /&gt;
&lt;br /&gt;
'''Daemon''' : (logico)&lt;br /&gt;
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 &amp;quot;/&amp;quot;; lo standard input, lo standard output e lo standard error output vengono chiusi.&lt;br /&gt;
Una volta impostata come demone, l'applicazione non può ritornare nello stato normale (Daemon=FALSE).&lt;br /&gt;
La directory di lavoro temporanea viene rinominata con l'identificatore del processo dopo la variazione.&lt;br /&gt;
&lt;br /&gt;
'''Dir''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dell'applicazione. Questa è la directory corrente di lavoro all'avvio dell'applicazione.&lt;br /&gt;
&lt;br /&gt;
'''Env''' : (oggetto, solo lettura)&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
'''Handle''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma. &lt;br /&gt;
&lt;br /&gt;
'''Id''' : (intero, solo lettura)&lt;br /&gt;
Ritorna il pid di sistema (identificatore di processo) del programma (come Handle).&lt;br /&gt;
&lt;br /&gt;
'''Name''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il nome del programma, così come definito nel progetto.&lt;br /&gt;
&lt;br /&gt;
'''Path''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la directory dove risiede l'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Return''' : (intero)&lt;br /&gt;
Ritorna o imposta il valore che l'applicazione ritorna al sistema quando termina.&lt;br /&gt;
&lt;br /&gt;
'''Title''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna o imposta il titolo dell'applicazione. &lt;br /&gt;
&lt;br /&gt;
'''Version''' : (stringa, solo lettura)&lt;br /&gt;
Ritorna la versione del programma, così come impostata nel progetto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Metodi'''&lt;br /&gt;
----&lt;br /&gt;
nessuno&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Eventi'''&lt;br /&gt;
----&lt;br /&gt;
'''Application_Read()''' :&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Descrizione'''&lt;br /&gt;
----&lt;br /&gt;
Anche se statico, è possibile creare oggetti Application derivati da questo, personalizzabili a seconda delle proprie esigenze (aggiunta di altre proprietà e/o metodi).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Esempi'''&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=CheckBox&amp;diff=1595</id>
		<title>CheckBox</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=CheckBox&amp;diff=1595"/>
		<updated>2008-10-17T12:39:28Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://www.gambas-it.org/gmbs/modules/PDdownloads/images/wiki_checkbox.png&lt;br /&gt;
'''Permette la selezione di opzioni'''&lt;br /&gt;
----&lt;br /&gt;
'''Proprietà'''&lt;br /&gt;
&lt;br /&gt;
''Name'' = Nome dell'oggetto&lt;br /&gt;
&lt;br /&gt;
''Action'' = &lt;br /&gt;
&lt;br /&gt;
''Background'' = Il colore dello sfondo&lt;br /&gt;
&lt;br /&gt;
''Drop'' = &lt;br /&gt;
&lt;br /&gt;
''Enabled'' = Se è true l'oggetto è abilitato, altrimenti è disabilitato&lt;br /&gt;
&lt;br /&gt;
''Expand'' = &lt;br /&gt;
&lt;br /&gt;
''Font'' = Imposta il tipo e la grandezza del font che appaiono sull'oggetto&lt;br /&gt;
&lt;br /&gt;
''Foreground'' = Imposta il colore del font che appare sull'oggetto&lt;br /&gt;
&lt;br /&gt;
''Height''= Imposta l'altezza dell'oggetto&lt;br /&gt;
&lt;br /&gt;
''Ignore'' = &lt;br /&gt;
&lt;br /&gt;
''Mouse''= Imposta l'aspetto che assumerà il cursore del mouse all'atto del passaggio sull'oggetto&lt;br /&gt;
&lt;br /&gt;
''Tag'' = Informazioni &amp;quot;di servizio&amp;quot; associate all'oggetto che non ne influenzano il comportamento, ma possono essere utili al programmatore&lt;br /&gt;
&lt;br /&gt;
''Text'' = Il testo visualizzato sull'oggetto&lt;br /&gt;
&lt;br /&gt;
''Tooltip'' = Il suggerimento che compare quando il cursore del mouse si sofferma sull'oggetto&lt;br /&gt;
&lt;br /&gt;
''Tristate'' = Indica che il valore del controllo può assumere tre diversi valori: FALSE, TRUE e NULL; se attiva questa impostazione inizializza la checkbox con il valore Null, ed è normalmente visibile come un rettangolo grigio all'interno della checkbox. Se l'impostazione è FALSE, il valore della checkbox viene inizializzato a FALSE.&lt;br /&gt;
&lt;br /&gt;
''Value'' = Lo stato di default dell'oggetto; true=selezionato, false=vuoto, none=indefinito&lt;br /&gt;
&lt;br /&gt;
''Visibile'' = Imposta se l'oggetto è visibile (true) o meno (false)&lt;br /&gt;
&lt;br /&gt;
''Width'' = Imposta la lunghezza dell'oggetto&lt;br /&gt;
&lt;br /&gt;
''X'' = Coordinata X della posizione dell'angolo in alto a sinistra dell'oggetto rispetto al form in cui si trova&lt;br /&gt;
&lt;br /&gt;
''Y'' = Coordinata Y della posizione dell'angolo in alto a sinistra dell'oggetto rispetto al form in cui si trova&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=CREATE_PRIVATE...CREATE_STATIC&amp;diff=1584</id>
		<title>CREATE PRIVATE...CREATE STATIC</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=CREATE_PRIVATE...CREATE_STATIC&amp;diff=1584"/>
		<updated>2008-09-28T17:57:38Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CREATE PRIVATE, CREATE STATIC'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[Traduzione dalla pagina ufficiale di Gambas]&lt;br /&gt;
''Queste due parole chiave, inserite all'inizio del codice di una classe, indicano all'interprete Gambas che la classe non può essere istanziata.''&lt;br /&gt;
''Questa modalità viene usata per la costruzione di classi, padri di altre classi.''&lt;br /&gt;
&lt;br /&gt;
Come già menzionato nella pagina [[Gli Oggetti e le Classi]], una classe può essere derivata da un'altra classe superiore, ereditandone le caratteristiche pubbliche e le funzionalità. Lo scopo di questa logica fà parte del concetto di oggetto (o classe), comune a tutti i linguaggi orientati agli oggetti.&lt;br /&gt;
&lt;br /&gt;
Come anche in altri articoli, non voglio qui avviare una discussione sul concetto di classe, ma in qualche modo cercherò di spiegare il funzionamento di alcune caratterische di Gambas, collegando questo ad alcuni riferimenti e concetti generali.&lt;br /&gt;
&lt;br /&gt;
Una classe, o oggetto, può essere considerato in modo modo semplice, come una collezione di caratteristiche che ne contraddistinguono l'uso all'interno di un programma. Come per un variabile, una volta creata e istanziata a livello procedura, assume un contenuto e una forma in memoria reali, altrettanto viene fatto per una classe.&lt;br /&gt;
Una classe può contenere vari tipi di elemento, da semplici variabili a funzioni complesse; ogni volta che l'oggetto viene creato, in realtà vengono creati in memoria tutti i suoi elementi (private e pubblici). Al programma, poi, verrà ritornato il puntamento (o riferimento) in memoria del nuovo oggetto.&lt;br /&gt;
L'utilizzo di una variabile, o una funzione, che fà parte dell'oggetto, può essere fatta tramite il puntamento al nome stesso della variabile/funzione, passando prima per il puntamento iniziale della classe:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  '''DIM NuovaClasse AS Window'''       ''dichiarazione di una classe di tipo Window''&lt;br /&gt;
  ...&lt;br /&gt;
  '''NuovaClasse = NEW Window()'''      ''creazione della classe in memoria''&lt;br /&gt;
  ...&lt;br /&gt;
  '''NuovaClasse.Resize(x,y)'''         ''utilizzo di un metodo (o funzione) della nuova classe''&lt;br /&gt;
  ...&lt;br /&gt;
  '''NuovaClasse.Caption = &amp;quot;Titolo&amp;quot;'''  ''utilizzo di una proprietà della nuova classe''&lt;br /&gt;
  ...&lt;br /&gt;
  '''DIM NuovoPuntatore AS Window'''&lt;br /&gt;
  '''NuovoPuntatore = NuovaClasse'''    ''creazione di un nuovo puntatore a una classe esistente''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
La logica degli oggetti permette di definire una serie di caratteristiche distinte legate all'oggetto stesso.&lt;br /&gt;
&lt;br /&gt;
Se associamo questa logica al mondo reale, possiamo fare un semplice esempio: immaginiamo di descrivere una matita (o lapis), utilizzando una classe chiamata ''Matita'':&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  ' ''Gambas class file''&lt;br /&gt;
  '&lt;br /&gt;
  ' ''CLASS Matita''&lt;br /&gt;
  .&lt;br /&gt;
  '''INHERITS Object'''                     ''derivazione dalla classe padre''&lt;br /&gt;
  .&lt;br /&gt;
  '''PUBLIC LunghezzaMatita AS Integer'''   ''proprietà caratteristica dell'oggetto''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Nota:''' E' da tener presente che in Gambas, tutti gli oggetti (o classi) derivano dalla classe base Object, mentre per gli oggetti di tipo grafico esiste la sotto classe specializzata Control (che deriva anch'essa da Object).&lt;br /&gt;
&lt;br /&gt;
Ritornando all'esempio, abbiamo definito una classe ''Matita'', derivata dalla classe base '''Object'''. Da quest'ultima ne riceve tutte le caratteristiche, tra qui quelle fondamentali di creazione e distruzione dell'oggetto stesso.&lt;br /&gt;
Alla classe ''Matita'' abbiamo aggiunto, rispetto a Object, la proprietà ''LunghezzaMatita'', che nel nostro semplice esempio definisce la particolarità del nuovo oggetto; in questo caso LunghezzaMatita ha lo scopo di definire, appunto, la dimensione della matita.&lt;br /&gt;
In questo modo non abbiamo fatto altro che definire un oggetto specializzato, ma ancora non ha tutti i requisiti.&lt;br /&gt;
Noi sappiamo che in realtà esistono matite di ogni genere e colore, per cui occorre definire una nuova definizione dell'oggetto ''Matita'', in modo che corrisponda ad un oggetto reale. Supponiamo di voler creare una ''Matita'' che può assumere diversi colori:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  ' ''Gambas class file''&lt;br /&gt;
  '&lt;br /&gt;
  ' ''CLASS MatitaColorata''&lt;br /&gt;
  .&lt;br /&gt;
  '''INHERITS Matita'''                    ''derivazione dalla classe padre Matita''&lt;br /&gt;
  .&lt;br /&gt;
  '''PUBLIC Colore AS Color'''             ''caratteristica del nuovo oggetto''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
In questo esempio abbiamo creato un nuovo oggetto ''MatitaColorata'', derivandola dalla classe superiore ''Matita''. Questa nuova classe eredita la proprietà pubblica ''LunghezzaMatita'' della classe superiore, ma aggiunge un'ulteriore proprietà: ''Colore''.&lt;br /&gt;
La bellezza di questa logica è che non dobbiamo scrivere nuovamente il codice per creare la matita, perchè il codice è già incluso nella classe superiore, e la classe figlia lo eredita in modo automatico.&lt;br /&gt;
La nuova classe è diventata una classe specializzata della classe ''Matita''.&lt;br /&gt;
&lt;br /&gt;
Uno degli scopi fondamentali della logica a oggetti, è proprio quella di non dover scrivere più volte lo stesso codice, e un oggetto può essere riutilizzato più volte per situazioni diverse.&lt;br /&gt;
In questo modo possiamo creare oggetti diversi, derivati da una stessa fonte, ma che hanno specializzazioni diverse.&lt;br /&gt;
Diversamente da vecchie versioni di Gambas, in queste ultime release non sembra ci siano limiti nll'inerenza di classi e sottoclassi (in alcuni miei programmi ho usato fino a 20 sottoclassi...).&lt;br /&gt;
&lt;br /&gt;
Ritornando alle parole chiave '''CREATE PRIVATE''' e '''CREATE STATIC'''; ammettiamo per un momento che la classe base ''Matita'' non può essere direttamente utilizzata, perchè non equipaggiata delle necessarie caratteristiche di funzionalità di una vera matita (non sappiamo neppure se ha la punta...).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CREATE PRIVATE'''&lt;br /&gt;
&lt;br /&gt;
Dato che la classe base Matita non può essere utilizzata direttamente, diciamo a Gambas di bloccarla, e di renderla utile solo per la creazione di classi inferiori:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  ' ''Gambas class file''&lt;br /&gt;
  '&lt;br /&gt;
  ' ''CLASS Matita''&lt;br /&gt;
  .&lt;br /&gt;
  '''INHERITS Object'''                       ''derivazione dalla classe padre Object''&lt;br /&gt;
  .&lt;br /&gt;
  '''CREATE PRIVATE'''                        ''definizione di classe non istanziabile''&lt;br /&gt;
  .&lt;br /&gt;
  '''PUBLIC LunghezzaMatita AS Integer'''     ''caratteristica del nuovo oggetto''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
La frase '''CREATE PRIVATE''' informa l'interprete di Gambas, che la classe ''Matita'' non può essere nè creata, nè istanziata all'interno del programma.&lt;br /&gt;
A questo punto, se vogliamo creare una vera matita, occorre creare un'altro oggetto, che assume proprietà reali (es. il colore):&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  ' ''Gambas class file''&lt;br /&gt;
  '&lt;br /&gt;
  ' ''CLASS MatitaRossa''&lt;br /&gt;
  .&lt;br /&gt;
  '''INHERITS Matita'''                       ''derivazione dalla classe padre Matita''&lt;br /&gt;
  .&lt;br /&gt;
  '''PUBLIC READ Colore AS Color'''           ''proprietà caratteristica del nuovo oggetto''&lt;br /&gt;
  .&lt;br /&gt;
  '''PUBLIC FUNCTION Colore_Read()'''         ''metodo per il ritorno del valore della proprietà di colore''&lt;br /&gt;
    '''RETURN Color.Red'''                    ''valore ritornato''&lt;br /&gt;
  '''END'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
La nuova classe MatitaRossa non altro che la classe base Matita, ma con una caratteristica particolare: è rossa.&lt;br /&gt;
La nuova proprierà Colore (che è impostata in sola lettura), ritorna il valore costante Red, della classe base statica Color di Gambas.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''CREATE STATIC'''&lt;br /&gt;
&lt;br /&gt;
La frase chiave '''CREATE STATIC''', a differenza della precedente, dice all'inteprete di Gambas che la classe in oggetto, oltre a non poter essere creata, e quindi istanziata, deve essere creata in memoria in modo automatico, e che deve essere accessibile già in fase di avvio programma.&lt;br /&gt;
Questo vuol dire che, a differenza di una normale classe o di una classe privata (vedi precedente), la nuova classe è già disponibile e attiva, senza bisogno di istruzioni di creazione. Esempi, in Gambas, sono le classi Form e Settings, che sono direttamente utilizzabili, in pratica sono create automaticamente e al volo...&lt;br /&gt;
Come per '''CREATE PRIVATE''', la sintassi deve trovarsi all'inizio del codice della classe, o subito dopo un'istruzione [[INHERITS]].&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  ' ''Gambas class file''&lt;br /&gt;
  '&lt;br /&gt;
  ' ''CLASS Matita''&lt;br /&gt;
  .&lt;br /&gt;
  '''CREATE STATIC'''                   ''definizione di classe statica''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  ' ''Gambas class file''&lt;br /&gt;
  '&lt;br /&gt;
  ' ''CLASS MatitaRossa''&lt;br /&gt;
  .&lt;br /&gt;
  INHERITS Matita&lt;br /&gt;
  .&lt;br /&gt;
  '''CREATE STATIC'''                   ''definizione di sotto classe statica''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
A differenza dell'esempio fatto per '''CREATE PRIVATE''', la nuova classe ''MatitaRossa'' assume sì le proprietà della classe superiore ''Matita'', ma non c'è bisono di crearla, perchè lo fa in automatico l'interprete di Gambas all'avio del programma, e la classe è immediatamente disponibile per l'uso.&lt;br /&gt;
&lt;br /&gt;
E' ovvio che, in questo caso, non è possibile avere a disposizione, e quindi creare, multiple istanze dello stesso oggetto, per cui questo tipo di approccio ha l'obiettivo basilare di: mantenere una gestione del programma a oggetti, e l'utilizzo di una classe statica come una sorta di contenitore di funzionalità specifiche, un pò come poi è il modulo in Gambas.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Select_Case&amp;diff=1577</id>
		<title>Select Case</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Select_Case&amp;diff=1577"/>
		<updated>2008-09-28T11:00:37Z</updated>

		<summary type="html">&lt;p&gt;Md9327: Select Case moved to SELECT CASE...CASE...END SELECT: Parole chiave, non funzioni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[SELECT CASE...CASE...END SELECT]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=SELECT_CASE...CASE...END_SELECT&amp;diff=1576</id>
		<title>SELECT CASE...CASE...END SELECT</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=SELECT_CASE...CASE...END_SELECT&amp;diff=1576"/>
		<updated>2008-09-28T11:00:37Z</updated>

		<summary type="html">&lt;p&gt;Md9327: Select Case moved to SELECT CASE...CASE...END SELECT: Parole chiave, non funzioni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''SELECT CASE''' variabile&lt;br /&gt;
  '''CASE''' ''variabile(1)''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
  '''CASE''' ''variabile(2)''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
  '''CASE''' ''variabile(3)''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;&lt;br /&gt;
  '''CASE ELSE''' oppure '''DEFAULT'''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 4&amp;gt;&amp;gt;&lt;br /&gt;
 '''END SELECT''' &lt;br /&gt;
''' Esegue del codice previa verifica della condizione '''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Ogni valore che assume variabile esegue il codice successivo alla verifica.&lt;br /&gt;
Questa funzione è simile a [[If..Then..Else]] con la differenza che è più immediata e pulita la lettura del codice, e prevede un controllo più stretto sul range di valori.&lt;br /&gt;
Inoltre è possibile gestire il flusso di dati in modo che in caso non sia soddisfatta nessuna condizione il sistema esegua qualche cosa, questo è possibile tramite '''CASE ELSE''' o '''DEFAULT'''.&lt;br /&gt;
&lt;br /&gt;
''Esempio 1'' - '''Verifica pressione di un tasto'''&lt;br /&gt;
&lt;br /&gt;
 '''SELECT CASE''' key.Code&lt;br /&gt;
  '''CASE''' key.Escape&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto ESC&amp;quot;)&lt;br /&gt;
  '''CASE''' key.F1&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto F1&amp;quot;)&lt;br /&gt;
  '''DEFAULT''' &lt;br /&gt;
  Message.Info(&amp;quot;tasto non riconosciuto&amp;quot;)&lt;br /&gt;
 '''END SELECT''' &lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Ad ogni pressione di un tasto il sistema verifica a quale codice della tastiera corrisponde e si comporta di conseguenza. Per provare l'esempio è sufficiente scrivere il codice sopra riportato all'interno di una TextBox.&lt;br /&gt;
&lt;br /&gt;
Per associare lo stesso codice a più situazioni, è possibile definirli nella stessa istruzione CASE, separando ogni valore da una virgola:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
 '''SELECT CASE''' key.Code&lt;br /&gt;
  '''CASE''' key.Escape&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto ESC&amp;quot;)&lt;br /&gt;
  '''CASE''' key.F1, key.F2, Key.Home&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto F1&amp;quot;)&lt;br /&gt;
  '''DEFAULT''' &lt;br /&gt;
  Message.Info(&amp;quot;tasto non riconosciuto&amp;quot;)&lt;br /&gt;
 '''END SELECT''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Come si può notare dall'esempio, nel secondo CASE sono stati definiti tre valori (F1, F2 e Home); alla pressione dei tasti corrispondenti verrà eseguita la stessa istruzione.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=INHERITS&amp;diff=1573</id>
		<title>INHERITS</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=INHERITS&amp;diff=1573"/>
		<updated>2008-09-28T10:59:40Z</updated>

		<summary type="html">&lt;p&gt;Md9327: Inherits moved to INHERITS: Parole chiave, non funzioni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''INHERITS''' &amp;lt;ParentClass&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questa istruzione nella costruzioni di oggetti (o classi), basati su una specifica classe padre (Parent), e da cui prende tutte le caratteristiche che la identifica: proprietà e metodi. In realtà, dalla classe padre, è possibile derivare solo le proprietà e i metodi dichiarati '''PUBLIC''', mentre per quanto riguarda il resto, '''PRIVATE''', resta di uso strettemente della classe in cui sono dichiarati.&lt;br /&gt;
In questa logica sono anche comprese le costanti '''CONST''' (PUBLIC CONST) e le proprietà e i metodi '''STATIC''' (STATIC PUBLIC).&lt;br /&gt;
&lt;br /&gt;
Anche nelle librerie Gambas sono presenti oggetti, le cui caratteristiche derivano dalla inerenza da oggetti superiori; un esempio potrebbe essere la classe Button, che discende dalla classe Control. Un'altro esempio è la stessa classe Form, che seppur dichiarata non creabile dinamicamente, discende dalla classe Window, che a sua volta discende dalla classe Container, che a sua volta discende dalla classe Control.&lt;br /&gt;
Come si può notare, la discendenza, o inerenza, tra gli oggetti può essere molto complessa, ma ad ogni passaggio, ogni fliglio apporta nuove caratteristiche alla classe, rendendola sempre più specializzata.&lt;br /&gt;
Non sono qui ad aprire un discorso sul tema della classi, perchè sarebbe lungo e fuori luogo, e inoltre esiste una montagna si documentazione in giro, che il mio risulterebbe un contributo piuttosto striminzito.&lt;br /&gt;
&lt;br /&gt;
Ma torniamo a noi...&lt;br /&gt;
&lt;br /&gt;
L'istruzione '''INHERITS''' è molto semplice, ma deve essere necessariamente la prima istruzione della classe (ad esclusione delle note...), e l'oggetto ParentClass deve essere già presente nel progetto, o nelle librerie di Gambas.&lt;br /&gt;
Diversamente dalle versioni precedenti di Gambas, ora è possibile derivare un numero imprecisato di sottoclassi, ma non è possibile creare oggetti dipendenti da più di una classe parent contemporaneamente.&lt;br /&gt;
Tranne che per gli oggetti Form, e gli oggetti STATIC in generale, inclusi nelle librerie di base, è possibile creare nuove classi derivandoli da quelli già presenti in Gambas.&lt;br /&gt;
E' sottinteso che qualsiasi altro nostro oggetto, può essere subclassato senza alcun problema.&lt;br /&gt;
&lt;br /&gt;
Una volta che una classe è stata dichiarata sottoclasse di un'altra, ne prende le caratteristiche; ogni modifica alle sue proprietà viene riflessa anche alle proprietà della classe superiore, questo include anche la possibilità di sovrascrivere un determinato metodo in modo che si comporti in modo diverso rispetto alla classe superiore.&lt;br /&gt;
&lt;br /&gt;
Per fare un esempio, vogliamo creare un oggetto di tipo Button, a cui però vogliamo modificare o aggiungere nuove caratteristiche, oppure addirittura modificarne il comportamento, è sufficiente creare una nuova classe, e dichiararla '''INHERITS''' a Button:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
  '''INHERITS''' Button&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Una volta definita la sua discendenza dalla classe superiore Button, non è necessario richiarare e ridefinire le caratteristiche che la nuova classe si ingloba con questa unione; questo a meno che non si voglia condizionare alcune delle funzionalità della classe superiore, per meglio adattarle alla nuova classe. Ma, a parte questo, lo scopo reale nell'avere costruito questa nuova classe, sarebbe quello di specializzarne la funzione, rispetto alla classe padre.&lt;br /&gt;
Di idee ce ne potrebbero diverse, ma possiamo cercare di capire con un semplice esempio.&lt;br /&gt;
&lt;br /&gt;
Ammettiamo di voler creare questa nuova classe Button, con lo scopo di renderla standard e utilizzabile per un determinato scopo all'interno della nostra applicazione; questo fa sì che una volta definite le caratteristiche particolari di questo nuovo pulsante, non ci si debba più preoccupare del suo funzionamento all'interno delle procedure in cui lo inseriremo.&lt;br /&gt;
Ammettiamo il molto semplice caso di un pulsante utilizzabile per l'uscita da una Form, ovvero, cliccando su questo pulsante, l'evento di Click ci chiude la form:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Creiamo il pulsante e le proprietà e i metodi che ci servono:&lt;br /&gt;
&lt;br /&gt;
  '''INHERITS''' Button&lt;br /&gt;
  ...&lt;br /&gt;
  ...&lt;br /&gt;
  PUBLIC SUB _new()&lt;br /&gt;
    ...&lt;br /&gt;
    Object.Attach(ME, ME, &amp;quot;Event&amp;quot;)&lt;br /&gt;
    ...&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
  PUBLIC SUB Event_Click()&lt;br /&gt;
    ME.Parent.Close()&lt;br /&gt;
  END&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Come si può vedere, nell'esempio ho derivato la classe (chiamiamola 'CloseButton') dalla classe Button, in modo da prenderne tutte le caratteristiche; tramite il metodo nascosto &amp;quot;_new()&amp;quot; ([[Metodi nascosti]]), ho fatto in modo da definire un'etichetta precisa &amp;quot;Event&amp;quot; per tutti gli eventi legati al pulsante, e che questi eventi sono dichiarati all'interno della stessa classe: Object.Attach(&amp;lt;oggetto pulsante&amp;gt;, &amp;lt;classe gestore eventi&amp;gt;, &amp;lt;nome eventi&amp;gt;).&lt;br /&gt;
Poi ho dichiarato il metodo Event_Click(), per la risposta all'evento di click sul pulsante; all'interno dell'evento è il codice per chiusura della form. Il puntamento alla form viene fatto dalla proprietà &amp;quot;Parent&amp;quot; derivata dalla classe padre Button, a cui è stato passato il riferimento all'oggetto contenitore (la Form), infatti, la creazione del pulsante:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  DIM MyButton AS NEW CloseButton(hForm)&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
In questo esempio, mi pare ovvio che la parent diretta del nostro pulsante sia un Form, ma potrebbe anche essere un Panel, o un'altro oggetto contenitore; in questo caso è sufficiente passare l'esatto riferimento alla form per la sua chiusura.&lt;br /&gt;
&lt;br /&gt;
A parte il puerile esempio che ho descritto, la particolare funzione dell'istruzione '''INHERITS''' è di indubbia utilità, e apre un vasto mondo di possibilità, slegando enormemente lo sviluppo di applicazioni dalle sole librerie di base di Gambas.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=If..Then..Else&amp;diff=1571</id>
		<title>If..Then..Else</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=If..Then..Else&amp;diff=1571"/>
		<updated>2008-09-28T10:58:50Z</updated>

		<summary type="html">&lt;p&gt;Md9327: If..Then..Else moved to IF...THEN...ELSE...ENDIF: Parole chiave, non funzioni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[IF...THEN...ELSE...ENDIF]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=IF...THEN...ELSE...ENDIF&amp;diff=1570</id>
		<title>IF...THEN...ELSE...ENDIF</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=IF...THEN...ELSE...ENDIF&amp;diff=1570"/>
		<updated>2008-09-28T10:58:50Z</updated>

		<summary type="html">&lt;p&gt;Md9327: If..Then..Else moved to IF...THEN...ELSE...ENDIF: Parole chiave, non funzioni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; DIM variabile AS Integer&lt;br /&gt;
    FOR variabile = 1 TO 10&lt;br /&gt;
       '''IF''' ''variabile'' = 5 '''THEN'''&lt;br /&gt;
          &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
       '''ELSE'''&lt;br /&gt;
          &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
       '''ELSE IF'''&lt;br /&gt;
          &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;&lt;br /&gt;
       '''ENDIF''' &lt;br /&gt;
    NEXT&lt;br /&gt;
''' Esegue una verifica condizionale.'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un altro mattone fondamentale nella scrittura del codice è l’istruzione '''IF…THEN…ELSE''' (letteralmente se…allora…altrimenti).&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Per variabile che va’ da 1 a 10 se il valore di variabile è uguale a 5 esegue &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt; altrimenti esegue  &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt; quindi procede con il prossimo valore di variabile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 1'' - '''Verifica condizionale immediata'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Se il valore di variabile1 è uguale a variabile2 allora esegui &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In questo caso &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt; sarà un'istruzione semplice ed immediata (un assegnazione di un valore ad una variabile, un uscita dal programma, una chiamata di un funzione).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 2'' - '''Verifica condizionale complessa'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;&lt;br /&gt;
 ENDIF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Se il valore di variabile1 è uguale a variabile2 allora esegui &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In questo caso &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt; può essere anche di natura complessa (cicli For..Next, ulteriori istruzioni If..Then, ecc.).&lt;br /&gt;
L'istruzione ENDIF comunica al sistema la &amp;quot;chiusura&amp;quot; della verifica condizionale.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 3'' - '''Verifica condizionale logica'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
 ENDIF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Nell'esempio è stata adottata una verifica logica, ovvero che può avere solo due condizioni: se il valore di variabile1 è uguale a variabile2 allora esegui &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;, altrimenti esegui &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 4'' - '''Verifica condizionale multipla'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE IF variabile1 &amp;lt; variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE IF variabile1 &amp;gt; variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 4&amp;gt;&amp;gt;&lt;br /&gt;
 ENDIF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Nell'esempio è stata adottata una verifica multipla, ovvero il controllo su molteplici condizioni:&lt;br /&gt;
  1) se il valore di variabile1 è uguale a variabile2 esegui &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;;&lt;br /&gt;
     altrimenti&lt;br /&gt;
  2) se il valore di variabile1 è minore di variabile2 esegui &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;;&lt;br /&gt;
     altrimenti&lt;br /&gt;
  3) se il valore di variabile1 è maggiore di variabile2 esegui &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;;&lt;br /&gt;
     altrimenti&lt;br /&gt;
  4) esegui &amp;lt;&amp;lt;vostro codice 4&amp;gt;&amp;gt;.&lt;br /&gt;
Questo tipo di verifica permette di eseguire decisioni su più possibilità (se previste); nel caso nessuna sia valida, verrà eseguito il codice dopo l'ultimo ELSE.&lt;br /&gt;
----&lt;br /&gt;
La sintassi prevede anche la possibilità di concatenare più IF per la stessa condizione:&lt;br /&gt;
&lt;br /&gt;
''Esempio 5'' - '''Verifica condizionale con concatenamento AND'''&lt;br /&gt;
&lt;br /&gt;
 IF &amp;lt;condizione 1&amp;gt; AND IF &amp;lt;condizione 2&amp;gt; THEN&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
 END IF&lt;br /&gt;
&lt;br /&gt;
''Esempio 6'' - '''Verifica condizionale con concatenamento OR'''&lt;br /&gt;
&lt;br /&gt;
 IF &amp;lt;condizione 1&amp;gt; OR IF &amp;lt;condizione 2&amp;gt; THEN&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
 END IF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Questo tipo di sintassi viene in aiuto nel caso si debba eseguire lo stesso codice (evitare sempre le duplicazioni!); le condizioni non vengono valutate tutte prima del risultato, ma solo una per volta, da sinistra verso destra, e la successiva solo se la precedente ritorna un valore logico positivo:&lt;br /&gt;
&lt;br /&gt;
''esempio 5:'' verifica &amp;lt;condizione 1&amp;gt; e, se vera, verifica &amp;lt;condizione 2&amp;gt;, se vera anche questa esegue il codice &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''esempio 6:'' verifica &amp;lt;condizione 1&amp;gt; e, se vera esegue il codice &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;, altrimenti verifica &amp;lt;condizione 2&amp;gt;, se vera questa esegue il codice &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'unico problema, almeno per ora, è che le IF devono stare tutte sulla stessa riga, in caso contrario si verificherà un errore di compilazione.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le possibile scelte condizionali che offre l’istruzione IF…THEN sono:&lt;br /&gt;
&lt;br /&gt;
'''=''' uguale (variabile1 = variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt;''' maggiore (variabile1 &amp;gt; variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;''' minore (variabile1 &amp;lt; variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;&amp;gt;''' diverso (variabile1 &amp;lt;&amp;gt; variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt;=''' maggiore o uguale (variabile1 &amp;gt;= variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;=''' minore o uguale (variabile1 &amp;lt;= variabile2)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Nota:''' la sintassi '''IF...ELSE...ENDIF''' si rende necessaria quando la verifica deve essere fatta su valori, o condizioni, che possono assumere valori troppo dinamici e generici; nel caso di valori fissi viene in aiuto un'altra sintassi, che in molti casi si rende più leggibile: [[Select Case]].&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=For..Next&amp;diff=1568</id>
		<title>For..Next</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=For..Next&amp;diff=1568"/>
		<updated>2008-09-28T10:57:42Z</updated>

		<summary type="html">&lt;p&gt;Md9327: For..Next moved to FOR...NEXT: Parole chiave, non funzioni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[FOR...NEXT]]&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=FOR...NEXT&amp;diff=1567</id>
		<title>FOR...NEXT</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=FOR...NEXT&amp;diff=1567"/>
		<updated>2008-09-28T10:57:42Z</updated>

		<summary type="html">&lt;p&gt;Md9327: For..Next moved to FOR...NEXT: Parole chiave, non funzioni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''FOR''' ''variabile'' '''=''' ''valore1'' '''TO''' ''valore2'' [ '''STEP''' ''valore3'' ]&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt; &lt;br /&gt;
 '''NEXT'''&lt;br /&gt;
&lt;br /&gt;
''' Ripete un ciclo incrementando o decrementando un valore. '''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 1'' - '''Ciclo crescente semplice'''&lt;br /&gt;
&lt;br /&gt;
 DIM variabile AS Integer&lt;br /&gt;
    '''FOR variabile = 0 TO 10'''&lt;br /&gt;
      Message.Info(&amp;quot;Numero &amp;quot; &amp;amp; Str$(variabile))&lt;br /&gt;
    '''NEXT''' &lt;br /&gt;
''Spiegazione''&lt;br /&gt;
	&lt;br /&gt;
Per ogni valore da 0 a 10 che può assumere variabile, mostra il messaggio &amp;quot;Numero&amp;quot; ed il valore di variabile. In questo caso saranno mostrati tutti i messaggi con i seguenti numeri: 0-1-2-3-4-5-6-7-8-9-10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 2'' - '''Ciclo crescente con passo'''&lt;br /&gt;
&lt;br /&gt;
 DIM variabile AS Integer&lt;br /&gt;
    '''FOR variabile = 0 TO 10 STEP 2'''&lt;br /&gt;
      Message.Info(&amp;quot;Numero &amp;quot; &amp;amp; Str$(variabile))&lt;br /&gt;
    '''NEXT''' &lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Per ogni valore da 0 a 10 con passo (STEP) 2 che può assumere variabile, mostra il messaggio &amp;quot;Numero&amp;quot; ed il valore di variabile. In questo caso saranno mostrati i messaggi con questi numeri: 0-2-4-6-8-10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 3'' - '''Ciclo decrescente con passo'''&lt;br /&gt;
&lt;br /&gt;
 DIM variabile AS Integer&lt;br /&gt;
    '''FOR variabile = 10 TO 0 STEP -2'''&lt;br /&gt;
      Message.Info(&amp;quot;Numero &amp;quot; &amp;amp; Str$(variabile))&lt;br /&gt;
    '''NEXT''' &lt;br /&gt;
''Spiegazione''&lt;br /&gt;
	&lt;br /&gt;
Per ogni valore da 10 a 0 con passo (STEP) -2 che può assumere variabile, mostra il messaggio &amp;quot;Numero&amp;quot; ed il valore di variabile. In questo caso saranno mostrati i messaggi con questi numeri: 10-8-6-4-2-0. Siccome per definizione di linguaggio un ciclo FOR..NEXT è crescente (1-2-3-ecc.) in caso venga omesso il comando STEP -2 non sarà mostrato alcun messaggio in quanto il nostro codice risulterà soddisfatto immediatamente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
''Nota''&lt;br /&gt;
&lt;br /&gt;
''Chi ha già esperienza di programmazione in Visual Basic avrà notato che dopo l'istruzione NEXT non è stato specificato a quale variabile si fa' riferimento:&lt;br /&gt;
&lt;br /&gt;
''Visual Basic'' = '''NEXT''' ''variabile''&lt;br /&gt;
 &lt;br /&gt;
''Gambas'' = '''NEXT'''&lt;br /&gt;
&lt;br /&gt;
In realtà questo è superfluo per il semplice motivo che un ciclo FOR...NEXT è fine a se stesso e di tipo concentrico: ogni istruzione FOR deve concludersi con una istruzione NEXT.''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 4'' - '''Cicli nidificati'''&lt;br /&gt;
&lt;br /&gt;
 DIM variabile AS Integer&lt;br /&gt;
 DIM variabile1 AS Integer&lt;br /&gt;
 DIM variabile2 AS Integer&lt;br /&gt;
    '''FOR variabile = 0 TO 10'''&lt;br /&gt;
       '''FOR variabile1 = 0 TO 10'''&lt;br /&gt;
          '''FOR variabile2 = 0 TO 10'''&lt;br /&gt;
            Message.Info(&amp;quot;Numero &amp;quot; &amp;amp; Str$(variabile) &amp;amp; Str$(variabile1) &amp;amp; Str$(variabile2))&lt;br /&gt;
          '''NEXT''' &lt;br /&gt;
       '''NEXT'''&lt;br /&gt;
    '''NEXT'''&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
	&lt;br /&gt;
Al primo avvio variabile assume il valore 0, variabile1 assume il valore 0 e variabile2 assume il valore 0. Il primo valore che viene incrementato è quello riferito a variabile2, quando questa arriva a 10 il sistema passa il controllo a variabile1 e così via fino a che variabile assume valore 10, variabile1 valore 10 e variabile2 valore 10. Possiamo quindi notare che all'interno di un codice FOR...NEXT composto da vari cicli nidificati la priorità di esecuzione è sempre riferita all'ultimo ciclo scritto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 5'' - '''Uscita anticipata'''&lt;br /&gt;
&lt;br /&gt;
 DIM variabile AS Integer&lt;br /&gt;
    '''FOR variabile = 0 TO 10'''&lt;br /&gt;
         IF variabile = 5 then &lt;br /&gt;
            Message.Info(&amp;quot;Esco dal ciclo.&amp;quot;)&lt;br /&gt;
            '''BREAK'''&lt;br /&gt;
         ENDIF&lt;br /&gt;
      Message.Info(&amp;quot;Numero &amp;quot; &amp;amp; Str$(variabile))&lt;br /&gt;
    '''NEXT'''&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
	&lt;br /&gt;
Il programma mostrerà i messaggi per ogni valore di variabile da 0 a 4; quando variabile raggiunge il valore 5 il sistema uscirà (BREAK) dal ciclo e non mostrerà più alcun messaggio.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
La sintassi FOR...NEXT viene in aiuto anche nel caso di loop su array e oggetti array, nel caso ci interessi solo il contenuto dell'array e non il numero di cicli effettuati:&lt;br /&gt;
&lt;br /&gt;
''Esempio 6'' - '''Ciclo su array stringa'''&lt;br /&gt;
&lt;br /&gt;
 DIM variabile AS String[10]&lt;br /&gt;
 DIM valore as String&lt;br /&gt;
    '''FOR EACH valore IN variabile'''&lt;br /&gt;
      PRINT valore&lt;br /&gt;
    '''NEXT'''&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Come si può vedere dall'esempio, sono state inserite le parole chiave '''EACH''' e '''IN''', che indicano al ciclo di prendere tutti i valori includi nell'array 'variabile', uno per volta, di copiarli in 'valore', e di renderli disponibili alle istruzioni incluse nel loop. A questo punto pare evidente che la gestione di come e dove andare a prendere i dati è demandata al ciclo FOR, e a noi non resta che prenderci il valore restituito ogni volta, e manipolarlo come vogliamo, senza doverci neppure preoccupare di modificare l'array stesso, dato che la variabile 'value' contiene solo una copia del corrente elemento dell'array.&lt;br /&gt;
La sintassi è valida per ogni tipo di oggetto di tipo array, comprese le '''Collection'''.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=IF...THEN...ELSE...ENDIF&amp;diff=1554</id>
		<title>IF...THEN...ELSE...ENDIF</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=IF...THEN...ELSE...ENDIF&amp;diff=1554"/>
		<updated>2008-09-25T23:13:18Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; DIM variabile AS Integer&lt;br /&gt;
    FOR variabile = 1 TO 10&lt;br /&gt;
       '''IF''' ''variabile'' = 5 '''THEN'''&lt;br /&gt;
          &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
       '''ELSE'''&lt;br /&gt;
          &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
       '''ELSE IF'''&lt;br /&gt;
          &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;&lt;br /&gt;
       '''ENDIF''' &lt;br /&gt;
    NEXT&lt;br /&gt;
''' Esegue una verifica condizionale.'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un altro mattone fondamentale nella scrittura del codice è l’istruzione '''IF…THEN…ELSE''' (letteralmente se…allora…altrimenti).&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Per variabile che va’ da 1 a 10 se il valore di variabile è uguale a 5 esegue &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt; altrimenti esegue  &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt; quindi procede con il prossimo valore di variabile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 1'' - '''Verifica condizionale immediata'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Se il valore di variabile1 è uguale a variabile2 allora esegui &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In questo caso &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt; sarà un'istruzione semplice ed immediata (un assegnazione di un valore ad una variabile, un uscita dal programma, una chiamata di un funzione).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 2'' - '''Verifica condizionale complessa'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;&lt;br /&gt;
 ENDIF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Se il valore di variabile1 è uguale a variabile2 allora esegui &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In questo caso &amp;lt;&amp;lt;vostro codice&amp;gt;&amp;gt; può essere anche di natura complessa (cicli For..Next, ulteriori istruzioni If..Then, ecc.).&lt;br /&gt;
L'istruzione ENDIF comunica al sistema la &amp;quot;chiusura&amp;quot; della verifica condizionale.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 3'' - '''Verifica condizionale logica'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
 ENDIF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Nell'esempio è stata adottata una verifica logica, ovvero che può avere solo due condizioni: se il valore di variabile1 è uguale a variabile2 allora esegui &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;, altrimenti esegui &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Esempio 4'' - '''Verifica condizionale multipla'''&lt;br /&gt;
&lt;br /&gt;
 IF variabile1 = variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE IF variabile1 &amp;lt; variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE IF variabile1 &amp;gt; variabile2 THEN &lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;&lt;br /&gt;
 ELSE&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 4&amp;gt;&amp;gt;&lt;br /&gt;
 ENDIF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Nell'esempio è stata adottata una verifica multipla, ovvero il controllo su molteplici condizioni:&lt;br /&gt;
  1) se il valore di variabile1 è uguale a variabile2 esegui &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;;&lt;br /&gt;
     altrimenti&lt;br /&gt;
  2) se il valore di variabile1 è minore di variabile2 esegui &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;;&lt;br /&gt;
     altrimenti&lt;br /&gt;
  3) se il valore di variabile1 è maggiore di variabile2 esegui &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;;&lt;br /&gt;
     altrimenti&lt;br /&gt;
  4) esegui &amp;lt;&amp;lt;vostro codice 4&amp;gt;&amp;gt;.&lt;br /&gt;
Questo tipo di verifica permette di eseguire decisioni su più possibilità (se previste); nel caso nessuna sia valida, verrà eseguito il codice dopo l'ultimo ELSE.&lt;br /&gt;
----&lt;br /&gt;
La sintassi prevede anche la possibilità di concatenare più IF per la stessa condizione:&lt;br /&gt;
&lt;br /&gt;
''Esempio 5'' - '''Verifica condizionale con concatenamento AND'''&lt;br /&gt;
&lt;br /&gt;
 IF &amp;lt;condizione 1&amp;gt; AND IF &amp;lt;condizione 2&amp;gt; THEN&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
 END IF&lt;br /&gt;
&lt;br /&gt;
''Esempio 6'' - '''Verifica condizionale con concatenamento OR'''&lt;br /&gt;
&lt;br /&gt;
 IF &amp;lt;condizione 1&amp;gt; OR IF &amp;lt;condizione 2&amp;gt; THEN&lt;br /&gt;
 &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
 END IF&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Questo tipo di sintassi viene in aiuto nel caso si debba eseguire lo stesso codice (evitare sempre le duplicazioni!); le condizioni non vengono valutate tutte prima del risultato, ma solo una per volta, da sinistra verso destra, e la successiva solo se la precedente ritorna un valore logico positivo:&lt;br /&gt;
&lt;br /&gt;
''esempio 5:'' verifica &amp;lt;condizione 1&amp;gt; e, se vera, verifica &amp;lt;condizione 2&amp;gt;, se vera anche questa esegue il codice &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''esempio 6:'' verifica &amp;lt;condizione 1&amp;gt; e, se vera esegue il codice &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;, altrimenti verifica &amp;lt;condizione 2&amp;gt;, se vera questa esegue il codice &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'unico problema, almeno per ora, è che le IF devono stare tutte sulla stessa riga, in caso contrario si verificherà un errore di compilazione.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le possibile scelte condizionali che offre l’istruzione IF…THEN sono:&lt;br /&gt;
&lt;br /&gt;
'''=''' uguale (variabile1 = variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt;''' maggiore (variabile1 &amp;gt; variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;''' minore (variabile1 &amp;lt; variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;&amp;gt;''' diverso (variabile1 &amp;lt;&amp;gt; variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt;=''' maggiore o uguale (variabile1 &amp;gt;= variabile2)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;=''' minore o uguale (variabile1 &amp;lt;= variabile2)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Nota:''' la sintassi '''IF...ELSE...ENDIF''' si rende necessaria quando la verifica deve essere fatta su valori, o condizioni, che possono assumere valori troppo dinamici e generici; nel caso di valori fissi viene in aiuto un'altra sintassi, che in molti casi si rende più leggibile: [[Select Case]].&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=SELECT_CASE...CASE...END_SELECT&amp;diff=1553</id>
		<title>SELECT CASE...CASE...END SELECT</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=SELECT_CASE...CASE...END_SELECT&amp;diff=1553"/>
		<updated>2008-09-25T23:07:12Z</updated>

		<summary type="html">&lt;p&gt;Md9327: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; '''SELECT CASE''' variabile&lt;br /&gt;
  '''CASE''' ''variabile(1)''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 1&amp;gt;&amp;gt;&lt;br /&gt;
  '''CASE''' ''variabile(2)''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 2&amp;gt;&amp;gt;&lt;br /&gt;
  '''CASE''' ''variabile(3)''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 3&amp;gt;&amp;gt;&lt;br /&gt;
  '''CASE ELSE''' oppure '''DEFAULT'''&lt;br /&gt;
  &amp;lt;&amp;lt;vostro codice 4&amp;gt;&amp;gt;&lt;br /&gt;
 '''END SELECT''' &lt;br /&gt;
''' Esegue del codice previa verifica della condizione '''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Ogni valore che assume variabile esegue il codice successivo alla verifica.&lt;br /&gt;
Questa funzione è simile a [[If..Then..Else]] con la differenza che è più immediata e pulita la lettura del codice, e prevede un controllo più stretto sul range di valori.&lt;br /&gt;
Inoltre è possibile gestire il flusso di dati in modo che in caso non sia soddisfatta nessuna condizione il sistema esegua qualche cosa, questo è possibile tramite '''CASE ELSE''' o '''DEFAULT'''.&lt;br /&gt;
&lt;br /&gt;
''Esempio 1'' - '''Verifica pressione di un tasto'''&lt;br /&gt;
&lt;br /&gt;
 '''SELECT CASE''' key.Code&lt;br /&gt;
  '''CASE''' key.Escape&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto ESC&amp;quot;)&lt;br /&gt;
  '''CASE''' key.F1&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto F1&amp;quot;)&lt;br /&gt;
  '''DEFAULT''' &lt;br /&gt;
  Message.Info(&amp;quot;tasto non riconosciuto&amp;quot;)&lt;br /&gt;
 '''END SELECT''' &lt;br /&gt;
''Spiegazione''&lt;br /&gt;
&lt;br /&gt;
Ad ogni pressione di un tasto il sistema verifica a quale codice della tastiera corrisponde e si comporta di conseguenza. Per provare l'esempio è sufficiente scrivere il codice sopra riportato all'interno di una TextBox.&lt;br /&gt;
&lt;br /&gt;
Per associare lo stesso codice a più situazioni, è possibile definirli nella stessa istruzione CASE, separando ogni valore da una virgola:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Esempio:&lt;br /&gt;
&lt;br /&gt;
 '''SELECT CASE''' key.Code&lt;br /&gt;
  '''CASE''' key.Escape&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto ESC&amp;quot;)&lt;br /&gt;
  '''CASE''' key.F1, key.F2, Key.Home&lt;br /&gt;
  Message.Info(&amp;quot;premuto il tasto F1&amp;quot;)&lt;br /&gt;
  '''DEFAULT''' &lt;br /&gt;
  Message.Info(&amp;quot;tasto non riconosciuto&amp;quot;)&lt;br /&gt;
 '''END SELECT''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Come si può notare dall'esempio, nel secondo CASE sono stati definiti tre valori (F1, F2 e Home); alla pressione dei tasti corrispondenti verrà eseguita la stessa istruzione.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Left..Right..Mid&amp;diff=1550</id>
		<title>Left..Right..Mid</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Left..Right..Mid&amp;diff=1550"/>
		<updated>2008-09-25T23:02:23Z</updated>

		<summary type="html">&lt;p&gt;Md9327: Left$..Right$..Mid$ moved to Left..Right..Mid: Left$..Right$..Mid$ sono alias e riminiscenze di Basic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Left(”Gambas-it.org”, 3)&lt;br /&gt;
 Right(”Gambas-it.org”, 3)&lt;br /&gt;
 Mid(”Gambas-it.org”, 4, 2)&lt;br /&gt;
''' Estrapola una porzione di testo da una stringa'''&lt;br /&gt;
----&lt;br /&gt;
Non c’è niente da fare, prima o poi capiterà di dover manipolare i dati presenti in una stringa di testo.&lt;br /&gt;
Gambas2 ci viene in aiuto con queste tre istruzioni:&lt;br /&gt;
'''Left''' (sinistra)&lt;br /&gt;
'''Right''' (destra)&lt;br /&gt;
'''Mid''' (in mezzo)&lt;br /&gt;
&lt;br /&gt;
L’utilizzo di queste istruzioni è molto semplice:&lt;br /&gt;
&lt;br /&gt;
'''Left''' estrae i dati partendo da sinistra; guardando la riga di codice sopra riportato avremo la stampa della parola ''Gam''.&lt;br /&gt;
&lt;br /&gt;
'''Right''' estrae i dati partendo da destra; guardando la riga di codice sopra riportato avremo la stampa della parola ''org''.&lt;br /&gt;
&lt;br /&gt;
'''Mid''' estrae i dati partendo da una posizione specificata e con un intervallo specificato; guardando la riga di codice sopra riportato avremo la stampa della parola ''as''.&lt;br /&gt;
&lt;br /&gt;
Attenzione, la posizione di partenza e l’intervallo è in funzione dei caratteri, la posizione 0 (zero) non esiste (il primo carattere di una stringa è sempre a posizione 1), e l’intervallo è il numero di caratteri da estrapolare.&lt;br /&gt;
&lt;br /&gt;
Vediamo di seguito come estrapolare una parte di una parola con un esempio di codice che potrà tornarci utile nei nostri progetti:&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 DIM variabile AS String&lt;br /&gt;
 DIM tmp AS Integer&lt;br /&gt;
 variabile = “Gambas-it.org”&lt;br /&gt;
    FOR tmp = 1 TO Len(variabile)&lt;br /&gt;
       IF '''Mid(variabile, tmp, 3)''' = “bas” THEN&lt;br /&gt;
          Message.Info(”Trovata la parola ” &amp;amp; '''Mid(variabile, tmp, 3)''')&lt;br /&gt;
       ENDIF&lt;br /&gt;
    NEXT&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Analizziamo ogni singola riga per comprenderne meglio il significato:&lt;br /&gt;
&lt;br /&gt;
''DIM variabile AS String'' dichiarazione della variabile (nome e tipo)&lt;br /&gt;
&lt;br /&gt;
''DIM tmp AS Integer'' dichiarazione della variabile (nome e tipo)&lt;br /&gt;
&lt;br /&gt;
''FOR tmp = 1 TO Len(variabile)'' comunichiamo al sistema che valori può assumere tmp, ovvero da 1 alla lunghezza (Len) di variabile, nel nostro caso 13.&lt;br /&gt;
&lt;br /&gt;
''IF Mid(variabile, tmp, 3) = “bas” THEN'' chiediamo al sistema che deve controllare il valore di variabile (o meglio il 'Mid' di variabile), se questo valore è uguale a “bas” allora deve fare qualche cosa&lt;br /&gt;
&lt;br /&gt;
''Message.Info(”Trovata la parola ” &amp;amp; Mid(variabile, tmp, 3))'' ad ogni valore di variabile uguale a “bas” il sistema stampa la frase “Trovata la parola ” e la parola trovata, ovviamente tale frase sarà stampata una sola volta in quanto la parola “bas” è presente una sola volta all’interno di “Gambas-it.org”.&lt;br /&gt;
&lt;br /&gt;
''ENDIF'' termina il codice iniziato con IF.&lt;br /&gt;
&lt;br /&gt;
''NEXT'' procediamo con un nuovo valore fino al raggiungimento del numero 13.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Nota:''' Le istruzioni descritte hanno le stesse funzioni di quelle in Visual Basic, e in Gambas esistono anche le nomenclature classiche del Basic: '''Left$''', '''Right$''' e '''Mid$'''. Questi alias sono presenti per compatibilità con il Visual Basic, e probilmente scompariranno (come alias) dalle librerie di Gambas.&lt;/div&gt;</summary>
		<author><name>Md9327</name></author>
	</entry>
</feed>