Differenze tra le versioni di "Tutorial - creare un componente: il frame"

Da Gambas-it.org - Wikipedia.
(Stesura del Codice)
(Stesura del Codice)
Riga 45: Riga 45:
  
 
* Titolo
 
* Titolo
* Bordi
 
 
* Colore testo
 
* Colore testo
 
* Tipo di carattere
 
* Tipo di carattere
 +
* Bordi visibili
 
* Colore bordi
 
* Colore bordi
  
 
''Dichiarazione delle Variabili Private''
 
''Dichiarazione delle Variabili Private''
 
  Private $Text As String
 
  Private $Text As String
Private $BorderColor As Integer
 
 
  Private $TextColor As Integer
 
  Private $TextColor As Integer
 +
Private $Font As New Font
 
  Private $Border As Boolean = True
 
  Private $Border As Boolean = True
  Private $Font As New Font
+
  Private $BorderColor As Integer
  
 
Essendo il codice 'di uso interno' andremo a creare solamente dei metodi per il settaggio di proprietà grafiche:
 
Essendo il codice 'di uso interno' andremo a creare solamente dei metodi per il settaggio di proprietà grafiche:
  
 +
Public Sub SetText(Value As String)
 +
  $Text = Value
 +
  Me.DrawingArea1.Refresh()
 +
End
 +
 +
Public Function GetText() As String
 +
  Return $Text
 +
End
 +
 
 +
Public Sub SetTexColor(Value As Integer)
 +
  $TextColor = Value
 +
  Me.DrawingArea1.Refresh()
 +
End
 +
 +
Public Function GetTextColor() As Integer
 +
  Return $TextColor
 +
End
 +
 
  Public Sub SetFont(Value As Font)
 
  Public Sub SetFont(Value As Font)
 
   $Font = Value
 
   $Font = Value
Riga 75: Riga 93:
 
  Public Function GetBorder() As Boolean
 
  Public Function GetBorder() As Boolean
 
   Return $Border
 
   Return $Border
End
 
 
Public Sub SetText(Value As String)
 
  $Text = Value
 
  Me.DrawingArea1.Refresh()
 
End
 
 
Public Function GetText() As String
 
  Return $Text
 
 
  End
 
  End
 
   
 
   
Riga 93: Riga 102:
 
  Public Function GetBorderColor() As Integer
 
  Public Function GetBorderColor() As Integer
 
   Return $BorderColor
 
   Return $BorderColor
End
 
 
Public Sub SetTexColor(Value As Integer)
 
  $TextColor = Value
 
  Me.DrawingArea1.Refresh()
 
End
 
 
Public Function GetTextColor() As Integer
 
  Return $TextColor
 
 
  End
 
  End

Versione delle 16:15, 24 set 2010

Introduzione

Questo tutorial 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.

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ò 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.

Creazione del Progetto

Una volta avviato Gambas, andiamo a selezionare le seguenti voci:

  • Tipo Progetto: Applicazione Grafica
  • Opzioni: Creazione di un componente

Dopo aver scelto la cartella che andrà a contenere il Progetto, inseriamo il titolo: gb.framebox.

A questo punto il nostro 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. 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.

Form FFrameBox

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.

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.

Impostazioni degli oggetti

Le modifiche verranno apportate solamente alle proprietà sotto elencate, alle altre verranno lasciati i valori di default.

  • FFrameBox
Name = FFrameBox
Arrangemet = Fill

Impostando questa proprietà, gli oggetti figli con proprietà Expand = TRUE si andranno a ridimensionare in automatico alle dimensioni del Form.

  • DrawingArea
Name = DrawingArea1
Expand = TRUE
  • Panel
Name = Panel1
Expan = TRUE
Stesura del Codice

Come prima cosa si dovranno decidere le varie proprietà che andranno a variare graficamente il Frame:

  • Titolo
  • Colore testo
  • Tipo di carattere
  • Bordi visibili
  • Colore bordi

Dichiarazione delle Variabili Private

Private $Text As String
Private $TextColor As Integer
Private $Font As New Font
Private $Border As Boolean = True
Private $BorderColor As Integer

Essendo il codice 'di uso interno' andremo a creare solamente dei metodi per il settaggio di proprietà grafiche:

Public Sub SetText(Value As String)
  $Text = Value
  Me.DrawingArea1.Refresh()
End

Public Function GetText() As String
  Return $Text
End
 
Public Sub SetTexColor(Value As Integer)
  $TextColor = Value
  Me.DrawingArea1.Refresh()
End 

Public Function GetTextColor() As Integer
  Return $TextColor
End

Public Sub SetFont(Value As Font)
  $Font = Value
  Me.DrawingArea1.Refresh()
End

Public Function GetFont() As Font
  Return $Font
End

Public Sub SetBorder(Value As Boolean)
  $Border = Value
  Me.DrawingArea1.Refresh()
End

Public Function GetBorder() As Boolean
  Return $Border
End

Public Sub SetBorderColor(Value As Integer)
  $BorderColor = Value
  Me.DrawingArea1.Refresh()
End

Public Function GetBorderColor() As Integer
  Return $BorderColor
End