<?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=112.205.235.54</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=112.205.235.54"/>
	<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php/Speciale:Contributi/112.205.235.54"/>
	<updated>2026-10-23T08:38:52Z</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=Gambas_nei_repository_ufficiali&amp;diff=3548</id>
		<title>Gambas nei repository ufficiali</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Gambas_nei_repository_ufficiali&amp;diff=3548"/>
		<updated>2011-11-15T12:31:46Z</updated>

		<summary type="html">&lt;p&gt;112.205.235.54: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per un utente Linux alle prime armi la compilazione di un software dai codici sorgenti può rappresentare un ostacolo un po' difficile. La compilazione di [[Gambas]], poi, può risultare molto ostica a causa delle numerose dipendenze che devono essere risolte per poter compilare tutti i suoi moduli. Molto più facile, quindi, attingere dai repository (i canali software) ufficiali della propria distribuzione, dentro i quali si trovano programmi in formato binario già compilati e pronti per l'installazione con pochi, semplici click o comandi da terminale.&lt;br /&gt;
&lt;br /&gt;
Il problema dei repository, però, è che nel caso di software poco diffusi le versioni presenti non sono quasi mai le più recenti disponibili. Questo è anche, purtroppo, il caso di Gambas: a &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bestpills4weightloss.com/purebiotix-review.html &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; purebiotix diet pill review&amp;lt;/span&amp;gt;] causa della sua scarsa diffusione e delle già citate numerose dipendenze, molte distribuzioni tendono ad offrire una versione alquanto datata del programma. Ovviamente, più la versione è recente e più sarà esente da bug e con più caratteristiche integrate.&lt;br /&gt;
&lt;br /&gt;
La seguente tabella cerca di dare una panoramica la più ampia possibile sulle versioni di Gambas presenti nei repository ufficiali di numerose distribuzioni, in modo tale da offrire la possibilità a chi non vuole compilare da sorgenti di poter scegliere la &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.netlook.com.br/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;roupas da moda&amp;lt;/span&amp;gt;] distribuzione da installare anche in base a questo fattore.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!Distribuzione&lt;br /&gt;
!Versione presente&amp;lt;br&amp;gt;nei repository&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.archlinux.it/ ArchLinux]&lt;br /&gt;
|2.16.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.archlinux.it/ ArchLinux]&lt;br /&gt;
|Gambas2 SVN&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.centos.org/ CentOS 5]&lt;br /&gt;
|1.0.15&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Etch]&lt;br /&gt;
|1.0.15&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Squeeze]&lt;br /&gt;
|2.7&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Lenny]&lt;br /&gt;
|2.16&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Squeeze]&lt;br /&gt;
|2.19&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Sid]&lt;br /&gt;
|2.19&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.gnewsense.org/ gNewSense]&lt;br /&gt;
|2.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.mageia.org/ Mageia (Cauldron)]&lt;br /&gt;
|2.99.6&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.mandriva.com/ Mandriva 2009]&lt;br /&gt;
|2.11.1&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.mandriva.com/ Mandriva 2009 x86_64]&lt;br /&gt;
|2.8.2&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.opensuse.org/ openSUSE 11.1]&lt;br /&gt;
|2.11.1&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.pclinuxos.com/ PCLinuxOS 2007]&lt;br /&gt;
|2.9&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.slackware.com/ SlackWare 12.2]&lt;br /&gt;
|2.12.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.slax.org/ Slax]&lt;br /&gt;
|1.9.50&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 8.04]&lt;br /&gt;
|2.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 8.10]&lt;br /&gt;
|2.7&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 9.04]&lt;br /&gt;
|2.8.2&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 9.10]&lt;br /&gt;
|2.16&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.zenwalk.org/ ZenWalk 6.0]&lt;br /&gt;
|2.8.2&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>112.205.235.54</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Tutorial_-_creare_un_componente:_il_frame&amp;diff=3510</id>
		<title>Tutorial - creare un componente: il frame</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Tutorial_-_creare_un_componente:_il_frame&amp;diff=3510"/>
		<updated>2011-10-24T17:09:27Z</updated>

		<summary type="html">&lt;p&gt;112.205.235.54: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduzione==&lt;br /&gt;
&lt;br /&gt;
Questo tutorial è di completamento alla guida di [[Come creare un componente]] e vuol essere di esempio per la realizzazione di un oggetto Frame, che andrà ad integrarsi come componente nell'ambiente di sviluppo del linguaggio di programmazione Gambas versione 3.&lt;br /&gt;
&lt;br /&gt;
L'oggetto Frame, farà utilizzo di una classe genitore di tipo Container il quale verrà utilizzato per ereditare tutte le proprietà, metodi ed eventi che può &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.premierrivercruises.com/rivers/elbe-river-cruise &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Elbe river cruises&amp;lt;/span&amp;gt;] avere un contenitore, di una Form che conterrà a sua volta una DrawingArea per il disegno dei bordi e del titolo, e di un Panel che sarà il reale contenitore di oggetti del Frame.&lt;br /&gt;
&lt;br /&gt;
==Creazione del Progetto==&lt;br /&gt;
&lt;br /&gt;
Una volta avviato Gambas, andiamo a selezionare le seguenti voci:&lt;br /&gt;
&lt;br /&gt;
* Tipo Progetto: Applicazione Grafica&lt;br /&gt;
* Opzioni: Creazione di un componente&lt;br /&gt;
&lt;br /&gt;
Dopo aver scelto la cartella che andrà a contenere il Progetto, inseriamo il titolo: gb.framebox.&lt;br /&gt;
&lt;br /&gt;
A questo punto il nostro [[Media:Esploratore1.png|Esploratore di Progetti]] conterrà due classi di esempio che vengono generate di default, una Form di test e la cartella control dove risiederanno le icone dei vari oggetti del componente.&lt;br /&gt;
Andiamo ad eliminare le due classi e le due icone, creando una nuova classe FrameBox, con opzione 'Esportato', e una Form a cui daremo il nome di FFrameBox.&lt;br /&gt;
&lt;br /&gt;
====Form FFrameBox====&lt;br /&gt;
&lt;br /&gt;
L'utilizzare una Form per la realizzazione di un oggetto grafico non è strettamente indispensabile in quanto si possono creare tutti gli oggetti grafici all'interno di una classe. Il solo scopo del suo utilizzo è per semplificare le operazioni di posizionamento e ridimensionamento degli oggetti che andranno a comporre il Frame.&lt;br /&gt;
&lt;br /&gt;
Prima di tutto andiamo a posizionare la DrawingArea come primo strato del nostro oggetto, in quanto l'immagine che andrà a creare dovrà essere obbligatoriamente sul fondo, altrimenti non sarà possibile selezionare gli oggetti contenuti nel Frame. Dopodiché andremo ad inserire il Panel, senza preoccuparci della sua posizione.&lt;br /&gt;
&lt;br /&gt;
=====Impostazioni degli oggetti=====&lt;br /&gt;
&lt;br /&gt;
Le modifiche verranno apportate solamente alle proprietà sotto elencate, alle altre verranno lasciati i valori di default.&lt;br /&gt;
&lt;br /&gt;
* FFrameBox&lt;br /&gt;
 Name = FFrameBox&lt;br /&gt;
 Arrangemet = Fill&lt;br /&gt;
Impostando questa proprietà, gli oggetti figli con proprietà Expand = TRUE si andranno a ridimensionare in automatico alle dimensioni del Form.&lt;br /&gt;
&lt;br /&gt;
* DrawingArea&lt;br /&gt;
 Name = DrawingArea1&lt;br /&gt;
 Expand = TRUE&lt;br /&gt;
&lt;br /&gt;
* Panel&lt;br /&gt;
 Name = Panel1&lt;br /&gt;
 Expan = TRUE&lt;br /&gt;
&lt;br /&gt;
=====Stesura del Codice=====&lt;br /&gt;
&lt;br /&gt;
Come prima cosa si dovranno decidere le varie proprietà che andranno a variare graficamente il Frame:&lt;br /&gt;
&lt;br /&gt;
* Titolo&lt;br /&gt;
* Colore testo&lt;br /&gt;
* Tipo di carattere&lt;br /&gt;
* Bordi visibili&lt;br /&gt;
* Colore bordi&lt;br /&gt;
&lt;br /&gt;
''Dichiarazione delle Variabili Private''&lt;br /&gt;
 Private $Text As String&lt;br /&gt;
 Private $TextColor As Integer&lt;br /&gt;
 Private $Font As New Font&lt;br /&gt;
 Private $Border As Boolean = True&lt;br /&gt;
 Private $BorderColor As Integer&lt;br /&gt;
&lt;br /&gt;
Essendo il codice 'di uso interno' andremo a creare solamente dei metodi per il settaggio delle proprietà grafiche:&lt;br /&gt;
&lt;br /&gt;
 Public Sub SetText(Value As String)&lt;br /&gt;
   $Text = Value&lt;br /&gt;
   Me.DrawingArea1.Refresh()&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Function GetText() As String&lt;br /&gt;
   Return $Text&lt;br /&gt;
 End&lt;br /&gt;
  &lt;br /&gt;
 Public Sub SetTexColor(Value As Integer)&lt;br /&gt;
   $TextColor = Value&lt;br /&gt;
   Me.DrawingArea1.Refresh()&lt;br /&gt;
 End &lt;br /&gt;
 &lt;br /&gt;
 Public Function GetTextColor() As Integer&lt;br /&gt;
   Return $TextColor&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Sub SetFont(Value As Font)&lt;br /&gt;
   $Font = Value&lt;br /&gt;
   Me.DrawingArea1.Refresh()&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Function GetFont() As Font&lt;br /&gt;
   Return $Font&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Sub SetBorder(Value As Boolean)&lt;br /&gt;
   $Border = Value&lt;br /&gt;
   Me.DrawingArea1.Refresh()&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Function GetBorder() As Boolean&lt;br /&gt;
   Return $Border&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Sub SetBorderColor(Value As Integer)&lt;br /&gt;
   $BorderColor = Value&lt;br /&gt;
   Me.DrawingArea1.Refresh()&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Function GetBorderColor() As Integer&lt;br /&gt;
   Return $BorderColor&lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
Da notare che per ogni variazione delle variabili, si richiama il metodo DrawingArea.Refresh() per poter applicare al volo le rispettive modifiche grafiche del frame.&amp;lt;br&amp;gt;&lt;br /&gt;
A questo punto creiamo il disegno del Frame all'interno dell'evento Draw della DrawingArea:&lt;br /&gt;
 Public Sub DrawingArea1_Draw()&lt;br /&gt;
 &lt;br /&gt;
   Paint.Begin(Me.DrawingArea1)&lt;br /&gt;
     Paint.Font = $Font&lt;br /&gt;
     Paint.Brush = Paint.Color($TextColor)&lt;br /&gt;
     Paint.Text($Text, 0, 0, Me.DrawingArea1.W, Paint.Font.TextHeight($Text) + 3, Align.Center)&lt;br /&gt;
     Paint.Fill()&lt;br /&gt;
     If $Border Then&lt;br /&gt;
       Paint.LineWidth = 0.5&lt;br /&gt;
       Paint.Brush = Paint.Color($BorderColor)&lt;br /&gt;
       Paint.MoveTo((Me.DrawingArea1.W - 5 - Paint.Font.TextWidth($Text)) / 2, Paint.Font.TextHeight($Text) / 2)&lt;br /&gt;
       Paint.LineTo(0, Paint.Font.TextHeight($Text) / 2)&lt;br /&gt;
       Paint.LineTo(0, Me.DrawingArea1.H)&lt;br /&gt;
       Paint.LineTo(Me.DrawingArea1.W, Me.DrawingArea1.H)&lt;br /&gt;
       Paint.LineTo(Me.DrawingArea1.w, Paint.Font.TextHeight($Text) / 2)&lt;br /&gt;
       Paint.LineTo(Me.DrawingArea1.W - ((Me.DrawingArea1.W - 5 - Paint.Font.TextWidth($Text)) / 2), Paint.Font.TextHeight($Text) / 2)&lt;br /&gt;
       Paint.Stroke()&lt;br /&gt;
     Endif&lt;br /&gt;
   Paint.End()&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
E per finire creiamo i metodi per variare la Proprietà Arrangement del Panel, in quanto sarà il vero contenitore del Frame:&lt;br /&gt;
 Public Sub SetArrange(Value As Integer)&lt;br /&gt;
   Me.Panel1.Arrangement = Value&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Public Function GetArrange() As Integer&lt;br /&gt;
   Return Me.Panel1.Arrangement&lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
====Classe FrameBox====&lt;br /&gt;
&lt;br /&gt;
Se nel Form appena creato abbiamo avuto una certa 'libertà' nella stesura del codice, adesso dobbiamo procedere con 'rigidità' per poter avere un componente pienamente funzionante nell'ide di Gambas.&lt;br /&gt;
&lt;br /&gt;
=====Dichiarazione Proprietà, Costanti e Variabili Private=====&lt;br /&gt;
Per prima cosa andremo a dichiarare la classe Genitore:&lt;br /&gt;
 Export&lt;br /&gt;
 &lt;br /&gt;
 Inherits UserContainer&lt;br /&gt;
In questo modo abbiamo ereditato proprietà, metodi ed eventi dell'oggetto UserContainer&amp;lt;br&amp;gt;&lt;br /&gt;
Poi andremo a dichiarare le costanti che serviranno all'ide di Gambas per l'integrazione del controllo:&lt;br /&gt;
 Public Const _Properties As String = &amp;quot;*,Text,Foreground{Color}=&amp;amp;H000000&amp;amp;,BorderColor{Color}=&amp;amp;H000000H,Border=True&amp;quot;&lt;br /&gt;
 Public Const _Group As String = &amp;quot;Gambas-it.org&amp;quot;&lt;br /&gt;
 Public Const _Arrangement As Integer = 0&lt;br /&gt;
 Public Const _Size As String = &amp;quot;36;36&amp;quot;&lt;br /&gt;
Dichiarazione delle Proprietà:&lt;br /&gt;
 Property Text As String&lt;br /&gt;
 Property Foreground As Integer&lt;br /&gt;
 Property BorderColor As Integer&lt;br /&gt;
 Property {Border} As Boolean&lt;br /&gt;
 Property {Font} As Font&lt;br /&gt;
 Property Arrangement As Integer&lt;br /&gt;
La Proprietà Arrangement è già compresa nelle Proprietà della classe genitore UserContainer. Dichiarandola nella classe figlia verrà automaticamente gestita da quest'ultima. &lt;br /&gt;
 Private Obs As Observer&lt;br /&gt;
L'oggetto Observer intercetta gli eventi dell'oggetto a lui legato, prima che passino alla classe che ha istanziato il medesimo oggetto. Questo è utile per creare condizioni nell'oggetto, prima che scateni un evento. Nel nostro esempio non sarà indispensabile, ma siccome è un oggetto molto usato nei componenti, è bene sapere come funzioni.&amp;lt;br&amp;gt;&lt;br /&gt;
Ed ora la FFrameBox che genererà la parte grafica del controllo:&lt;br /&gt;
 Private F As FFrameBox&lt;br /&gt;
&lt;br /&gt;
=====Metodo speciale _new()=====&lt;br /&gt;
&lt;br /&gt;
Questo metodo viene richiamato al momento della creazione dell'oggetto Frame. All'interno della sub quindi, vengono istanziati i vari oggetti che compongono il Frame e si danno i valori di default per alcune variabili.&lt;br /&gt;
&lt;br /&gt;
 Public Sub _new()&lt;br /&gt;
 &lt;br /&gt;
   Obs = New Observer(Me) As &amp;quot;Event&amp;quot;&lt;br /&gt;
   F = New FFrameBox(Me)&lt;br /&gt;
   Me._Container = F.Panel1&lt;br /&gt;
   F.SetText(Me.Name)&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
Il metodo speciale UserContainer._Container serve per trasferire le proprietà di contenitore vero e proprio, dall'oggetto UserContainer ad un altro oggetto, a patto che quest'ultimo sia a sua volta un contenitore. In questo caso passiamo l'onere di oggetto contenitore dalla classe genitore al Panel1 della FFrameBox, quindi tutti gli oggetti inseriti nel nostro Frame saranno contenuti dall'oggetto Panel1.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Metodi Read/Write delle Proprietà=====&lt;br /&gt;
&lt;br /&gt;
A questo punto non ci rimane altro che scrivere i metodi Read e Write delle varie proprietà, che andranno a modificare le  caratteristiche del nostro Frame.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Private Function Text_Read() As String&lt;br /&gt;
   Return F.GetText()&lt;br /&gt;
 End&lt;br /&gt;
 Private Sub Text_Write(Value As String)&lt;br /&gt;
   F.SetText(Value)&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Private Function Foreground_Read() As Integer&lt;br /&gt;
   Return F.GetTextColor()&lt;br /&gt;
 End&lt;br /&gt;
 Private Sub Foreground_Write(Value As Integer)&lt;br /&gt;
   F.SetTexColor(Value)&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Private Function BorderColor_Read() As Integer&lt;br /&gt;
   Return F.GetBorderColor()&lt;br /&gt;
 End&lt;br /&gt;
 Private Sub BorderColor_Write(Value As Integer)&lt;br /&gt;
   F.SetBorderColor(Value)&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Private Function Border_Read() As Boolean&lt;br /&gt;
   Return F.GetBorder()&lt;br /&gt;
 End&lt;br /&gt;
 Private Sub Border_Write(Value As Boolean)&lt;br /&gt;
   F.SetBorder(Value)&lt;br /&gt;
 End&lt;br /&gt;
 &lt;br /&gt;
 Private Function Font_Read() As Font&lt;br /&gt;
   Return F.GetFont()&lt;br /&gt;
 End&lt;br /&gt;
 Private Sub Font_Write(Value As Font)&lt;br /&gt;
   Super.Font = Value&lt;br /&gt;
   F.SetFont(Value)&lt;br /&gt;
 End &lt;br /&gt;
 &lt;br /&gt;
 Private Function Arrangement_Read() As Integer&lt;br /&gt;
   Return F.GetArrange()&lt;br /&gt;
 End&lt;br /&gt;
 Private Sub Arrangement_Write(Value As Integer)&lt;br /&gt;
   F.SetArrange(Value)&lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
=====Esempio per l'oggetto Observer=====&lt;br /&gt;
&lt;br /&gt;
Mettiamo il caso in cui volessimo che il nostro Frame 'accendesse' i bordi al posizionamento del mouse su di esso, dovremmo intercettare l'evento Enter del Frame, che, in questo caso, viene generato dall'oggetto UserContainer. Siccome quest'ultimo viene istanziato nella classe contenitore di un progetto, i vari eventi vengono eseguiti nella classe istanziatrice e non all'interno del medesimo oggetto. Quindi l'onere di cambiare il colore ai bordi spetta al programmatore che ha richiamato l'oggetto nel proprio Progetto.&amp;lt;br&amp;gt;&lt;br /&gt;
Per rendere l'oggetto autonomo da eventuale codice esterno, si richiama appunto l'oggetto Observer, il quale viene legato all'oggetto che si vuole monitorare. In questo esempio, e da come visto nel metodo _new(), si andrebbe semplicemente a scrivere questo codice:&lt;br /&gt;
&lt;br /&gt;
 Private $BorderColor as Integer&lt;br /&gt;
&lt;br /&gt;
 Public Sub Event_Enter()&lt;br /&gt;
 &lt;br /&gt;
   $BorderColor = Me.BorderColor&lt;br /&gt;
   Me.BorderColor = Color.Lighter(Me.BorderColor)&lt;br /&gt;
 &lt;br /&gt;
 End&lt;br /&gt;
&lt;br /&gt;
E, a sua volta, per far tornare i bordi ai suoi colori originali:&lt;br /&gt;
&lt;br /&gt;
 Public Sub Event_Leave()&lt;br /&gt;
 &lt;br /&gt;
   Me.BorderColor = $BorderColor&lt;br /&gt;
 &lt;br /&gt;
 End&lt;/div&gt;</summary>
		<author><name>112.205.235.54</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Creare_pi%C3%B9_form_uguali&amp;diff=3491</id>
		<title>Creare più form uguali</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Creare_pi%C3%B9_form_uguali&amp;diff=3491"/>
		<updated>2011-10-15T19:52:52Z</updated>

		<summary type="html">&lt;p&gt;112.205.235.54: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alle volte ci si può trovare a dover utilizzare più form che abbiano le stesse caratteristiche. Immaginiamo un gestore di un'azienda che voglia che ogni volta che si seleziona la voce da una lista (magari i suoi dipendenti) appaia un nuovo form contenete i dati della voce in questione. Fare questo significherebbe richiamare n volte una finestra, che abbia le caratteristiche di un form base, dove n è un numero imprecisato di volte.&lt;br /&gt;
&lt;br /&gt;
Ovviamente si capisce che creare infiniti form uguali è oneroso e poco lineare come scelta. Pertanto è possibile molto semplicemente crearne uno di base che possa essere richiamato come layout per le successive finestre.&lt;br /&gt;
&lt;br /&gt;
Vediamo come fare.&lt;br /&gt;
&lt;br /&gt;
Apriamo un nuovo progetto di gambas come visto nella lezione [[Ciao Mondo]].&lt;br /&gt;
&lt;br /&gt;
Ci troveremo davanti all'IDE con il nostro FMain. Preleviamo un '''button''' dalla barra dei widget e collochiamo a nostro piacimento all'intero del form. Modifichiamo le propietà '''name''' e '''text''' dell'oggetto rispettivamente in ''crea'' e ''Crea''. &lt;br /&gt;
&lt;br /&gt;
http://www.gambas-it.org/wiki/images/7/7a/Schermata-Lezione_-_Gambas_2.png&lt;br /&gt;
&lt;br /&gt;
Ora spostiamoci sul lato sinistro del nostro IDE dove è possibile visualizzare come è composto il nostro progetto e facciamo doppio click sulla cartella '''Forms''' e selezioniamo in successione Nuovo -&amp;gt; Form&lt;br /&gt;
&lt;br /&gt;
http://www.gambas-it.org/wiki/images/b/b2/Schermata-Lezione_-_Gambas_2-1.png&lt;br /&gt;
&lt;br /&gt;
Ci verrà chiesto il nome da dare al nuovo form. Noi lo chiameremo ''FBase'' proprio per rimarcare il fatto che sarà la copia base di tutte le finestre chiamate successivamente.&lt;br /&gt;
&lt;br /&gt;
http://www.gambas-it.org/wiki/images/5/5c/Schermata-Nuovo_file.png&lt;br /&gt;
&lt;br /&gt;
Ora ci si presenta un nuovo Form vuoto nel quale inseriremo semplicemente un button che ci consenta di chiuderlo. Selezioniamo come abbiamo fatto precedentemente tale oggetto e lo &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bestpills4weightloss.com/tone-detox-review.html &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;tone detox diet pill&amp;lt;/span&amp;gt;] collochiamo a nostro piacimento nel form modificando le proprietà '''name''' e '''text''' in ''chiudi'' e ''Chiudi''.&lt;br /&gt;
&lt;br /&gt;
http://www.gambas-it.org/wiki/images/0/05/Schermata-Lezione_-_Gambas_2-3.png&lt;br /&gt;
&lt;br /&gt;
Ora finalmente abbiamo il nostro form di base. Torniamo su FMain e con un doppio click sullo stesso apriamo l'editor del codice dove inseriremo il seguente codice:&lt;br /&gt;
&lt;br /&gt;
 PUBLIC SUB Crea_click()&lt;br /&gt;
   DIM hForm AS Form&lt;br /&gt;
   hForm = NEW FBase&lt;br /&gt;
   hForm.Show&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
'''Spiegazione:''' il nostro codice viene assegnato alla proprietà click del button Crea. Per prima cosa si dichiara hForm come un oggetto di tipo Form; successivamente si dice all'interprete che hForm sarà un nuovo form uguale a FBase. Infine con hForm.Show mostriamo cosa abbiamo appena creato.&lt;br /&gt;
&lt;br /&gt;
http://www.gambas-it.org/wiki/images/5/59/Schermata-Lezione_-_Gambas_2-4.png&lt;br /&gt;
&lt;br /&gt;
Ora sulla parte sinistra dell'IDE facciamo un doppio click su FBase per far apparire sulla parte centrale il nostro form. Facciamo nuovamente doppio click sul button Chiudi e nell'editor di codice che appare inseriamo il seguente codice:&lt;br /&gt;
&lt;br /&gt;
 PUBLIC SUB Chiudi_click()&lt;br /&gt;
   Me.Close&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
'''Spiegazione:''' il codice non fa altro che chiudere il form da cui si richiama il codice (Me india hForm stesso) mediante la proprietà Close quando si fa click sul button Crea.&lt;br /&gt;
&lt;br /&gt;
http://www.gambas-it.org/wiki/images/2/29/Schermata-Lezione_-_Gambas_2-5.png&lt;br /&gt;
&lt;br /&gt;
Bene! Ora abbiamo finito. Premiamo F5 e apparirà così FMain. Clicchiamo su Crea quante volte vogliamo e per ogni click si aprirà una finestra uguale a FBase.&lt;/div&gt;</summary>
		<author><name>112.205.235.54</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=3483</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=3483"/>
		<updated>2011-10-14T19:28:47Z</updated>

		<summary type="html">&lt;p&gt;112.205.235.54: &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;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]]&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://safedietpillsthatworkfast.com/ &amp;lt;span style=&amp;quot;color:blue;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;safe diet pills that work&amp;lt;/span&amp;gt;]&lt;br /&gt;
*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://thebeginnerslens.com/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;iphone photography&amp;lt;/span&amp;gt;]&lt;br /&gt;
*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.proposable.com&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;proposal software&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
== Gestione dei dati MIDI ==&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con O.S.S.]]*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://brooks-range.com/shelters/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Lightweight tents&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
*[[Gestione del MIDI con ALSA]]&lt;/div&gt;</summary>
		<author><name>112.205.235.54</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=3395</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=3395"/>
		<updated>2011-10-08T08:17:58Z</updated>

		<summary type="html">&lt;p&gt;112.205.235.54: &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;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]]&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
* [http://brooks-range.com/shelters/ Lightweight tents]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://safedietpillsthatworkfast.com/ &amp;lt;span style=&amp;quot;color:blue;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;safe diet pills that work&amp;lt;/span&amp;gt;]&lt;br /&gt;
*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://thebeginnerslens.com/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;iphone photography&amp;lt;/span&amp;gt;]&lt;br /&gt;
*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.proposable.com&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;proposal software&amp;lt;/span&amp;gt;]&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;/div&gt;</summary>
		<author><name>112.205.235.54</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Gambas_nei_repository_ufficiali&amp;diff=3231</id>
		<title>Gambas nei repository ufficiali</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Gambas_nei_repository_ufficiali&amp;diff=3231"/>
		<updated>2011-09-13T21:08:35Z</updated>

		<summary type="html">&lt;p&gt;112.205.235.54: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per un utente Linux alle prime armi la compilazione di un software dai codici sorgenti può rappresentare un ostacolo un po' difficile. La compilazione di [[Gambas]], poi, può risultare molto ostica a causa delle numerose dipendenze che devono essere risolte per poter compilare tutti i suoi moduli. Molto più facile, quindi, attingere dai repository (i canali software) ufficiali della propria distribuzione, dentro i quali si trovano programmi in formato binario già compilati e pronti per l'installazione con pochi, semplici click o comandi da terminale.&lt;br /&gt;
&lt;br /&gt;
Il problema dei repository, però, è che nel caso di software poco diffusi le versioni presenti non sono quasi mai le più recenti disponibili. Questo è anche, purtroppo, il caso di Gambas: a &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bestpills4weightloss.com/purebiotix-review.html &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; purebiotix diet pill review&amp;lt;/span&amp;gt;] causa della sua scarsa diffusione e delle già citate numerose dipendenze, molte distribuzioni tendono ad offrire una versione alquanto datata del programma. Ovviamente, più la versione è recente e più sarà esente da bug e con più caratteristiche integrate.&lt;br /&gt;
&lt;br /&gt;
La seguente tabella cerca di dare una panoramica la più ampia possibile sulle versioni di Gambas presenti nei repository ufficiali di numerose distribuzioni, in modo tale da offrire la possibilità a chi non vuole compilare da sorgenti di poter scegliere la distribuzione da installare anche in base a questo fattore.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!Distribuzione&lt;br /&gt;
!Versione presente&amp;lt;br&amp;gt;nei repository&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.archlinux.it/ ArchLinux]&lt;br /&gt;
|2.16.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.archlinux.it/ ArchLinux]&lt;br /&gt;
|Gambas2 SVN&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.centos.org/ CentOS 5]&lt;br /&gt;
|1.0.15&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Etch]&lt;br /&gt;
|1.0.15&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Squeeze]&lt;br /&gt;
|2.7&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Lenny]&lt;br /&gt;
|2.16&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Squeeze]&lt;br /&gt;
|2.19&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.debian.org/ Debian Sid]&lt;br /&gt;
|2.19&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.gnewsense.org/ gNewSense]&lt;br /&gt;
|2.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.mandriva.com/ Mandriva 2009]&lt;br /&gt;
|2.11.1&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.mandriva.com/ Mandriva 2009 x86_64]&lt;br /&gt;
|2.8.2&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.opensuse.org/ openSUSE 11.1]&lt;br /&gt;
|2.11.1&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.pclinuxos.com/ PCLinuxOS 2007]&lt;br /&gt;
|2.9&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.slackware.com/ SlackWare 12.2]&lt;br /&gt;
|2.12.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.slax.org/ Slax]&lt;br /&gt;
|1.9.50&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 8.04]&lt;br /&gt;
|2.0&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 8.10]&lt;br /&gt;
|2.7&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 9.04]&lt;br /&gt;
|2.8.2&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.ubuntu.com/ Ubuntu 9.10]&lt;br /&gt;
|2.16&lt;br /&gt;
|+&lt;br /&gt;
|[http://www.zenwalk.org/ ZenWalk 6.0]&lt;br /&gt;
|2.8.2&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>112.205.235.54</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0&amp;diff=3164</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=3164"/>
		<updated>2011-08-31T13:05:24Z</updated>

		<summary type="html">&lt;p&gt;112.205.235.54: /* Pdfwriter */&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;
== Interfacciare Gambas con librerie esterne ==&lt;br /&gt;
&lt;br /&gt;
* [[Documento originale (Inglese)]]&lt;br /&gt;
* [[Traduzione della comunità di Gambas-it]]&lt;br /&gt;
&lt;br /&gt;
== Pdfwriter ==&lt;br /&gt;
&lt;br /&gt;
*[[Guida ai report]]&lt;br /&gt;
*&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://safedietpillsthatworkfast.com/ &amp;lt;span style=&amp;quot;color:blue;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;safe diet pills that work&amp;lt;/span&amp;gt;]&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;/div&gt;</summary>
		<author><name>112.205.235.54</name></author>
	</entry>
</feed>