Autore Topic: Creazione componenti Gambas  (Letto 61881 volte)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Creazione componenti Gambas
« il: 21 Settembre 2010, 13:13:48 »
Inizio qui una sorta di discussione, circa la creazione e l'uso dei componenti in Gambas. Questo fino a che non sarà raggiunto un tale volume che obbligarà in qualche modo a farne una voce nel menu principale del forum.

Per iniziare, credo sia d'obbligo indicare allo stato attuale il nostro caro Milio, come massimo esperto nel forum, nella creazione di nuovi componenti.
Spero non me voglia, ma ha già e più volte dimostrato di saper costruire un componente, utilizzando le funzionalità offerte da Gambas.

A milio, appunto, inizio a porre una prima serie di domande:

1) cos'è un componente (utile per i neofiti)
2) differenze tra Gambas2 e Gambas3
3) come si fà ad aggiungere nuovi componenti nell'area Tool dell'Ide di Gambas.


Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componenti Gambas
« Risposta #1 il: 21 Settembre 2010, 13:45:26 »
Io direi che un semplice tutorial ci sta bene....almeno per capire come si fa....

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #2 il: 21 Settembre 2010, 15:17:12 »
Anche...

Ad ogni modo, suggerimenti, critiche e richieste possiamo farle qui, giusto?

Nel wiki ci si mette la parte documentale...

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componenti Gambas
« Risposta #3 il: 21 Settembre 2010, 15:20:12 »
Anche...

Ad ogni modo, suggerimenti, critiche e richieste possiamo farle qui, giusto?

Nel wiki ci si mette la parte documentale...

Si certo...io intendevo dire che secondo me sarebbe meglio sviluppare prima il tutorial e poi poterne discutere perchè così non si porrebbero domande "banali" ma si andrebbe più nello specifico della guida....

non so se mi hai capito...

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #4 il: 21 Settembre 2010, 15:25:20 »
Certo che ti ho capito... ma che hai detto?  :rotfl:

Sì, il mio intento è stato quello di aprire comunque una sorta di microforum, ma è ovvio che la destinazione è quella di completare una sorta di manuale.

Diciamo che, se intanto milio riesce a iniziare il wiki, magari io posso anche metterci i puntini, ma attraverso questa discussione possiamo scambiarci qualche idea e opinione, e lasciare anche una sorta di traccia per chi non è affatto dentro al problema.

In un 'altro thread ho proposto uno scambio di info, ma mi è parso corretto e oltremodo giusto, che lo scambio iniziale tra noi pochi iniziati, posaa essere letto anche da altri... tutto qui...

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.263
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #5 il: 21 Settembre 2010, 15:40:51 »
Urka che emozione  :-[ . Mi sento come alla vigilia di un'esame... non so se rendo l'idea  :D

Iniziamo con la prima domanda: che cos'e' un componente...

Un componente non e' altro che una classe creata, con determinate caratteristiche, per poter essere integrata con l'ide di gambas.
Questa classe puo' essere un oggetto grafico (vedi la TableView di gambas, che e' una GridView elaborata per accettare l'editazione dell'operatore) oppure una classe come Timer, che ha soltanto un'iconcina per essere visualizzata sul form, ma a 'lato pratico' e' tutto codice :).
Innanzi tutto per creare un componente e' necessario:

  Avviare Gambas :)
  Selezionare Nuovo Progetto
  Spuntare Creazione di un componente
  Scegliere il path del progetto
  Nome progetto

Su quest'ultimo (almeno penso io :) ma ho visto che non e' necessario) la prassi e' chiamare il progetto in questo modo:

  gb.nomeprogetto

In questo modo si identifica il progetto come un componente

Il progetto deve avere queste caratteristiche:

Necessarie:
  Avere la necessità di fare un componente
  Avere almeno una classe 'Esportabile' nel progetto

Non necessarie
  Una serie di Costanti Pubbliche per 'settare' il componente
  Un'icona per il componente


Avere la necessità di creare un componente
Questo l'ho messa come prima necessità perche' credo sia fondamentale.
La mia idea e' questa: se sto creando un piccolo progetto avente una classe creata ad ok per esso, non vale la pena di progettare un componente.
Se invece sto creando un progetto in cui vi siano componenti 'riciclabili' in altri progetti, allora la musica cambia...
Lo sapete tutti quanto sia piu' veloce creare un form avendo a disposizione oggetti grafici pronti all'uso e facilmente settabili ;)


Avere almeno una classe 'Esportabile' nel progetto
All'atto della creazione di una nuova classe, bisogna spuntare la casella 'Esportato'.
In questo modo si rende 'visibile' all'esterno del progetto (vale anche per progetti 'non componenti') gli eventi, le proprieta' pubbliche e i metodi pubblici.
In caso ci si dimentichi di quest'ultima operazione, basta aggiungere una linea di codice scrivendo semplicemente Export all'inizio della classe.


Una serie di Costanti Pubbliche per 'settare' il componente
Le Costanti Pubbliche sono rese nascoste con il carattere _ antecedente il nome della Costante e serve all'ide di gambas per settare diverse caratteristiche del componente

  Public Const _Properties As String
  Questa costante rende visibile le proprieta', separate da virgola, inserite all'interno di una stringa.
    Es.
        Public Const _Properties As String = "*,Action,AutoResize,Text,Picture,Arrow=True,Border=True,Menu"
  L'* rende visibile tutte le proprieta' ereditate dalla classe genitore (se e' stato specificato all'inizio della classe stessa il codice INHERITS <Classe>)
  Le restanti sono proprieta' create all'interno della classe
  Per impostare ad una proprieta' un valore di default <proprietà>=<valore>
  Per impostare un tipo di proprieta' che necessita di valori fissi (tipo Oggetto.Alignement) <proprietà>{Align.Left,Right,Center}=Center
  Per impostare un range <proprietà>{Range:0;100}=1
  Se la proprietà ha come valore un colore <proprietà>{Color} cosi' alla scelta del valore di questa proprietà apparirà il Form per la scelta dei colori.

  Public Const _DefaultEvent As String
  Setta l'evento di Default. Quando viene premuto il doppio click del mouse sopra l'oggetto nel form in costruzione, nella classe corrispondente viene creato il codice dell'evento scelto

  Public Const _Group As String
  Questa costante serve a posizionare il componente nella ToolBox di Gambas.
    Es.
        Public Const _Group As String = "Special"
  Inserisce il nostro componente nella Sezione Special accanto ai componenti Timer, Print, ...
  Se viene specificata una sezione che non esiste di default, essa viene creata (vedi mio componente gb.gridbox usa la sezione "Gambas-it.org" :) )

  Public Const _DrawWith As String
  Questa costante serve a determinare come viene disegnato il componente sul form di progettazione (e qui ci sarebbe da riempire un altro post :) vedremo in seguito)

  Public Const _DefaultSize As String
  Setta le dimensioni di default all'atto dell'inserimento nell form di progettazione

  Public Const _Similar As String
  Questo non l'ho ancora usato :(

  Public Const _Arrangement As String
  Solo per Componenti di tipo 'Contenitore' setta il tipo di Arrangiamento dei sui oggetti figli in esso contenuti

Non ho idea se siano tutte, ma la maggior parte le ho gia usate :)

Per adesso mi fermo qui
Riprendo fiato e ci sentiamo questa sera... Ciau


Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #6 il: 21 Settembre 2010, 15:51:09 »
Intanto grazie per aver risposto all'appello...  :ok:

Hai iniziato benissimo... (ma lo sai che poi lo devi pure scrivere nel wiki?  ;D )

A stasera dunque...

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componenti Gambas
« Risposta #7 il: 21 Settembre 2010, 15:57:49 »
Intanto grazie per aver risposto all'appello...  :ok:

Hai iniziato benissimo... (ma lo sai che poi lo devi pure scrivere nel wiki?  ;D )

A stasera dunque...

http://www.gambas-it.org/wiki/index.php/Come_creare_un_componente

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.263
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #8 il: 21 Settembre 2010, 16:11:28 »
Caspita che velocità  :o

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #9 il: 21 Settembre 2010, 16:15:16 »
Bè, sì... a volte si fà odiare, ma riesce sempre a stupisci con effetti speciali...  :P

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.263
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #10 il: 21 Settembre 2010, 16:16:43 »
Allora che fo'? continuo a scrivere qui, o proseguo sul wiki stasera (ti chiedero' qualche dritta perche' non ho mai utilizzato un wiki :( )

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componenti Gambas
« Risposta #11 il: 21 Settembre 2010, 16:19:00 »
Bè, sì... a volte si fà odiare, ma riesce sempre a stupisci con effetti speciali...  :P

8)

http://www.gambas-it.org/wp/?p=204

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.263
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #12 il: 21 Settembre 2010, 16:20:28 »
Esiste una sorta di editor per wiki? o bisogna fare tutto a 'manina' ?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Creazione componenti Gambas
« Risposta #13 il: 21 Settembre 2010, 16:57:49 »
Lo vedi? E poi dico bugie, eh?

Mo, per farsi coccolare, ha pure scritto sul blog... ma guarda che tizio...  :P

Milio, sò che ti ho messo in mezzo, ma ti tocca...  ;D

Scherzi a parte, il wiki ha una sorta di editor, con delle piccole regole, un pò come qui nel forum. Puoi abbellire il testo con qualche piccolo accorgimento, ma di certo non ne puoi fare una prima pagina di giornale...
La cosa è abbastanza semplice, e prenderci la mano è abbastanza veloce (ci sono riuscito pure io...).
Ad ogni modo, mica è detto che devi scrivere un poema tutto stasera entro le 23:59. Basta che correggi e aggiungi qualcosa ogni tanto, quando ti viene l'ispirazione, oltre al fatto che il buon cesko ha già piazzato la tua base.

In questa discussione, si faranno domande e quesiti, a cui chi può potrà contribuire. E' ovvio pensare che, al momento, tu sei il max esperto, ma qualcosa ho già fatto anche io, e magari ti porrò qualche domanda più precisa. Questo contribuirà alla divulgazione della conoscenza e a, magari, scatenare la curiosità di qualcun'altro...  :-\

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componenti Gambas
« Risposta #14 il: 21 Settembre 2010, 17:02:03 »
Esiste una sorta di editor per wiki? o bisogna fare tutto a 'manina' ?

Puoi aggiungere tutto quello che vuoi qui. Poi quando si ha abbastanza roba la si inserisce nella pagina wiki...

Tieni presente che l'editor già predisposto dal wiki è abbastanza funzionale. L'unica cosa che voglio farti presente è che se scrivi una frase preceduta da uno spazio l'editor te la interpreta come una citazione e te la chiude in quel quadrato celeste.Per il resto i comandi sono tutti sopra: grassetto, corsivo, etc....