Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: andy60 - 26 Settembre 2009, 10:00:24

Titolo: gb.chart
Inserito da: andy60 - 26 Settembre 2009, 10:00:24
Ho provato a creare un semplice programmetto di test del componente in questione, ma mi da' errore (null object error). Forse sono un po' arrugginito con gambas!
Il programma è composto da un bottone (che crea il grafico), una form , una drawing area.

Codice: [Seleziona]
' Gambas class file

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

END

PUBLIC SUB Button1_Click()

  SetMyChart

END

SUB SetMyChart()
  DIM mychart AS Chart
  mychart.Headers = ["a", "b", "c"]
  mychart[0].Values = [1.0, 2.0, 3.0]
  mychart.Title = "Chart test"
  mychart.Legend.Visible = TRUE
  mychart.Legend.Title = "My legend"
  mychart.Type = ChartType.Lines
  mychart.Style = ChartStyle.Custom
  mychart.Colors.Values = [Color.Yellow, Color.Red, Color.Blue]
  mychart.Width = DrawingArea1.ClientHeight
  mychart.Height = DrawingArea1.ClientWidth
  mychart.Draw
END
Titolo: Re: gb.chart
Inserito da: giulio - 26 Settembre 2009, 13:00:06
Quell'errore è tipico di un oggetto non inizializzato:

prova:

DIM mychart AS NEW Chart

oppure verifica la DrawingArea.

Ciao.
Titolo: Re: gb.chart
Inserito da: andy60 - 26 Settembre 2009, 13:36:49
non esce + quell'errore, ma mi dice che mychart.headers è readonly
Titolo: Re: gb.chart
Inserito da: giulio - 26 Settembre 2009, 15:07:58
Prova:

mychart.Headers.Add("a")
mychart.Headers.Add("b")
mychart.Headers.Add("c")

Bisogna segnalare a Benoit che non c'è documentazione per gb.chart!
Titolo: Re: gb.chart
Inserito da: Ceskho - 26 Settembre 2009, 15:14:45
Il massimo che puoi trovare è questo: http://gambasdoc.org/help/howto/makechart

Comunque chiederei gentilmente ad Andy60 se una volta finito di testare il componente può scrivere, per favore, due righe sul nostro wiki a riguardo così ovviamo alla palese mancanza di materiale a riguardo.

Te ne saremmo tutti grati.
Titolo: Re: gb.chart
Inserito da: andy60 - 26 Settembre 2009, 22:08:46
se riesco con grande piacere, grazie x le info
Titolo: Re: gb.chart
Inserito da: andy60 - 27 Settembre 2009, 10:08:45
queste istruzioni mi danno errore all'istruzione draw: NO CURRENT DEVICE
gli errori iniziali non ci sono piu'...

Codice: [Seleziona]
PUBLIC SUB Button1_Click()
  DIM mychart AS NEW Chart
  mychart.Headers.Add("a")
  mychart.Headers.Add("b")
  mychart.Headers.Add("c")
  mychart[0].Values.Add(1.0)
  mychart[0].Values.Add(2.0)
  mychart[0].Values.Add(3.0)
  mychart.Title.Text = "Chart test"
  mychart.Legend.Visible = TRUE
  mychart.Legend.Title = "My legend"
  mychart.Type = ChartType.Lines
  mychart.Style = ChartStyle.Custom
  mychart.Colors.Values = [Color.Yellow, Color.Red, Color.Blue]
  mychart.Width = DrawingArea1.ClientHeight
  mychart.Height = DrawingArea1.ClientWidth
  mychart.Draw
END
Titolo: Re: gb.chart
Inserito da: giulio - 27 Settembre 2009, 10:28:03
Manca il draw.begin() e il draw.end()

Codice: [Seleziona]

PUBLIC SUB Button1_Click()
 
  DIM myChart AS NEW Chart
 
  mychart.Headers.Add("a")
  mychart.Headers.Add("b")
  mychart.Headers.Add("c")
  mychart[0].Values.Add(1.0)
  mychart[0].Values.Add(2.0)
  mychart[0].Values.Add(3.0)
  mychart.Title.Text = "Chart test"
  mychart.Legend.Visible = TRUE
  mychart.Legend.Title = "My legend"
  mychart.Type = ChartType.Lines
  mychart.Style = ChartStyle.Custom
  mychart.Colors.Values = [Color.Yellow, Color.Red, Color.Blue]
 
  Draw.Begin(DrawingArea1)    
 
  myChart.Width = DrawingArea1.ClientHeight
  myChart.Height = DrawingArea1.ClientWidth
  TRY myChart.Draw()
 
  Draw.End
 
END


NOTA: alla fine ho messo un TRY prima di mychart.draw, perché senza si blocca
con un errore 'division by zero'.
Titolo: Re: gb.chart
Inserito da: andy60 - 27 Settembre 2009, 10:53:02
grazie, sperimento :2birre:
Titolo: Re: gb.chart
Inserito da: andy60 - 29 Settembre 2009, 17:53:07
non riesco a fare grafici, ancora, qualcuno ha qualche demotest funzionante?
Titolo: Re: gb.chart
Inserito da: Ceskho - 29 Settembre 2009, 18:01:24
Ciao andy,

tra gli esempi di gambas ce ne uno che si chiama BarChart ed è nello szione Disegno. Prova a dare un'occhiata perchè pare proprio faccia ciò che vuoi tu....
Titolo: Re: gb.chart
Inserito da: fsurfing - 29 Settembre 2009, 18:59:58
io ho sempre fatto i grafici tramite le funzioni di disegno (senza componente gb,chart) e mi son trovato benissimo,

se guardi meteomachine sono presenti grafici a torta , barre e linee
Titolo: Re: gb.chart
Inserito da: andy60 - 29 Settembre 2009, 19:00:13
grazie...ti segnalo la pagina di gambas che interessa questo argomento, l'esempio che c'è scritto non va, a me non funziona. Dovremmo partire da la x fare un test:

http://gambasdoc.org/help/howto/makechart (http://gambasdoc.org/help/howto/makechart)


IMHO la routine dei grafici dovrebbe funzionare perfettamente, se l'obiettivo è creare con il ns amato programma dei software gestionali, e non solo. Il mio programma "Diet & Sport" crea grafici 3d a torta dei nutrienti incamerati giornalmente, attingendo alle api Google, chiaramente mi piacerebbe fare lo stesso senza andare su google.
Titolo: Re: gb.chart
Inserito da: andy60 - 29 Settembre 2009, 19:02:15
scusa l'ignoranza dove devo vedere meteomach...? hai sviluppato funzioni ad hoc? stanno nel wiki? grazie
Titolo: Re: gb.chart
Inserito da: Ceskho - 29 Settembre 2009, 19:02:29
Allora penso che dovrai o abbandonare l'idea dei grafici a torta 3D e passare ad altro o rimanere con le API di google....

Per meteomachine puoi scaricare i sorgenti qui: http://www.altabrianza.org/meteomachinelinux/download.html
Titolo: Re: gb.chart
Inserito da: andy60 - 29 Settembre 2009, 19:04:14
certo che gb.chart dovrebbero svilupparla meglio, vabbe'..
Titolo: Re: gb.chart
Inserito da: Ceskho - 29 Settembre 2009, 19:09:20
Sai quante cose dovrebbero sviluppare meglio?

Siamo in perenne Beta!!!!Per tutto!!!
Titolo: Re: gb.chart
Inserito da: andy60 - 29 Settembre 2009, 19:13:56
complimenti all'autore del software meteo, grande qualità. Bellissimo, con grafici notevoli.
Titolo: Re: gb.chart
Inserito da: fsurfing - 29 Settembre 2009, 19:16:17
grazie!  :-P

alcuni di quei grafici mi hanno proprio soddisfatto!
Titolo: Re: gb.chart
Inserito da: Ceskho - 29 Settembre 2009, 19:18:49
E il meteo in diretta non ti piace??

 :cry:  :cry:
Titolo: Re: gb.chart
Inserito da: fsurfing - 29 Settembre 2009, 19:28:59
Citazione
E il meteo in diretta non ti piace??
:shit:
Titolo: Re: gb.chart
Inserito da: andy60 - 29 Settembre 2009, 20:51:53
non me ne intendo di metereologia, meglio di borsa....il programma è di grande qualità comunque
Titolo: Re: gb.chart
Inserito da: md9327 - 30 Settembre 2009, 16:39:17
Ciao "andy", è dà un bel pò che non ci incontriamo da queste bande...

Se non ricordo male, a suo tempo, mi avevi messo in mezzo nella costruzione di una libreria grafica per, appunto, gestire le torte (non di compleanno...).
Dalla mia non poi più continuato ad approfondirla, ma speravo lo avessi fatto tu...
L'idea era proprio quella di eliminare google, ed evitare connessioni internet.

Che fine ha fatto l'idea?
Tu non l'hai più approfondita?
Titolo: Re: gb.chart
Inserito da: andy60 - 30 Settembre 2009, 18:43:51
Ciao, il lavoro mi costringe a pause forzate ,ma la voglia di interagire non manca. la libreria grafica nel mio software è rimasta legata a Google. Purtroppo...Pero' spunti anche dal lavoro dello stupendo software meteo non mancano. A proposito restate nei pressi di http://dietandsports.wordpress.com , la' ci sara' la casa  di D&S
Titolo: Re: gb.chart
Inserito da: fsurfing - 30 Settembre 2009, 23:54:49
esempio di grafico torte in pseudo 3d realizzato con gambas
Titolo: Re: gb.chart
Inserito da: andy60 - 02 Ottobre 2009, 15:36:45
notevole, hai implementato una classe?
Titolo: Re: gb.chart
Inserito da: Ceskho - 02 Ottobre 2009, 16:00:45
All'interno della cartella che c'è come allegato c'è un modulo....

All'interno c'è la funzione torta che va usata così:

grafico.torta(testo, picturebox.w, picture.h)

dove testo deve contenere le misure separate virgola mentre gli alti due parametri sono l'altezza e larghezza di una picturebox nel form...
Titolo: Re: gb.chart
Inserito da: fsurfing - 02 Ottobre 2009, 18:13:35
è esattamente come ha detto ceskho, per precisare, w e h sono le dimensioni dell' immagine che si vuole ottenere.

il risultato della funzione è una picture che può essere salvata, o usata direttamente in un contenitore (es picturebox


Codice: [Seleziona]
grafico.torta(valore AS String, w AS Integer, h AS Integer) AS Picture

il modulo è ancora da completare con una leggenda
Titolo: Re: gb.chart
Inserito da: andy60 - 02 Ottobre 2009, 20:21:31
grande..è implementato anche il grafico ad istogramma e a liee nello stesso modo?
Titolo: Re: gb.chart
Inserito da: fsurfing - 02 Ottobre 2009, 20:32:55
be adesso pretendi un'pò troppo!  :-D
Titolo: Re: gb.chart
Inserito da: andy60 - 02 Ottobre 2009, 20:54:17
ho visto mi sembra un grafico ad istogramma nel programma meteo...vado a vedrmelo :amici:
Titolo: Re: gb.chart
Inserito da: Ceskho - 02 Ottobre 2009, 23:33:50
@ andy

il grafico a linee è contenuto nell'esempio che ti ho detto di guardare qualche risposta fà....
Titolo: Re: gb.chart
Inserito da: andy60 - 03 Ottobre 2009, 14:35:12
grazie come al solito :-D
Titolo: Re: gb.chart
Inserito da: Ceskho - 04 Ottobre 2009, 16:19:48
Tanto per arricchire il post per future consultazioni ho trovato questo:

http://www.linux.com/archive/feature/122049

Spiega come creare semplicissimi grafici.
Titolo: Re: gb.chart
Inserito da: andy60 - 04 Ottobre 2009, 21:35:44
interessante
Titolo: Re: gb.chart
Inserito da: Michele - 04 Ottobre 2009, 22:51:08
Scusate l'intromissione e la domanda stupida

ma dove trovo gb.chart?
Titolo: Re: gb.chart
Inserito da: fsurfing - 04 Ottobre 2009, 23:18:45
è un componente che devi abilitare dal menu  progetto>>proprietà>>componenti,
una volta abilitato puoi utilizzare le funzioni descritte nel link precedente
Titolo: Re: gb.chart
Inserito da: Michele - 05 Ottobre 2009, 14:02:30
è il primo posto dove ho guardato , ma non lo trovo
è possibile?
Titolo: Re: gb.chart
Inserito da: fsurfing - 05 Ottobre 2009, 18:43:10
si è possibile se :

-hai gambas compilato e durante la compilazione ti mancavano le dipendenze necessarie a quel modulo


ì hai gambas instalalto da un repo in cui questo modulo non esiste


che versione di gambas hai?
come l' hai installata?
Titolo: Re: gb.chart
Inserito da: Michele - 05 Ottobre 2009, 19:01:24
gambas 2.16 compilato da sorgenti

per avere tutte le dipendenze a posto prima di compilare cosa devo fare?

grazie
Titolo: Re: gb.chart
Inserito da: Ceskho - 05 Ottobre 2009, 19:31:00
devi andare qui e in base alla tua distro selezionare il link: http://gambasdoc.org/help/install
Titolo: Re: gb.chart
Inserito da: Michele - 05 Ottobre 2009, 23:49:52
ho ricompilato il tutto con seguendo la guida ma non appare ancora
ho provato in virtualbox con kubuntu 9.04 e lì invece trovo molti più componenti
compreso gb.chart
quindi presumo che il problema sia gnome
Titolo: Re: gb.chart
Inserito da: Ceskho - 06 Ottobre 2009, 00:33:23
Il problema non è gnome poichè io uso Ubuntu con gnome e i componenti ci sono tutti.
Titolo: Re: gb.chart
Inserito da: fsurfing - 06 Ottobre 2009, 07:42:58
al limite installa gambas 2.16 dai repo di launchpad  qui (http://www.gambas-it.org/gmbs/modules/newbb/viewtopic.php?topic_id=630&viewmode=flat&order=ASC&type=&mode=0&start=0)
Titolo: Re: gb.chart
Inserito da: Michele - 07 Ottobre 2009, 10:38:00
l'uovo di Colombo
gestore pacchetti-> installa pacchetti gambas mancanti

prima di azionare la tastiera collegare il cervello
Titolo: Re: gb.chart
Inserito da: Ceskho - 07 Ottobre 2009, 13:23:34
Citazione

akrobaticone ha scritto:
l'uovo di Colombo
gestore pacchetti-> installa pacchetti gambas mancanti

prima di azionare la tastiera collegare il cervello


Così sembri il tipico utente windows... :lol:
Titolo: Re: gb.chart
Inserito da: Michele - 07 Ottobre 2009, 16:21:22
Citazione

Ceskho ha scritto:
Citazione

akrobaticone ha scritto:
l'uovo di Colombo
gestore pacchetti-> installa pacchetti gambas mancanti

prima di azionare la tastiera collegare il cervello


Così sembri il tipico utente windows... :lol:


Per un affronto del genere ti potrei sfidare a singolar tenzone!!
Titolo: Re: gb.chart
Inserito da: andy60 - 14 Ottobre 2009, 18:31:57
amici ho scaricato l'esempio dei grafici gambas dal sito linux.com intitolato 'Creating simple chart with gambas 2.0' ma...sicuramente colpa mia....lo dico alla romana...NUN SE VEDE GNIENTE! ahahaha
Titolo: Re: gb.chart
Inserito da: md9327 - 15 Ottobre 2009, 14:38:06
...credo che lo scopo era proprio quello... non vedere gniente! :-)

Per caso lo ha scritto "crespo"? :-)
Titolo: Re: gb.chart
Inserito da: Ceskho - 15 Ottobre 2009, 15:28:54
[OT]Sei simpatico come il callo al piede dovuto alle scarpe il giorno del matrimonio di tuo fratello![/OT]
Titolo: Re: gb.chart
Inserito da: andy60 - 18 Ottobre 2009, 12:33:35
clicca qua per l'articolo sul grafico (http://andreabertini.wordpress.com/2009/10/06/linux-com-creating-simple-charts-with-gambas-2-0/)

l'articolo mi sembrava fatto bene, tra l'altro mi è stato segnalato qua sul Forum, ma non mi funziona!! :cry:
Titolo: Re: gb.chart
Inserito da: Ceskho - 18 Ottobre 2009, 13:03:32
Non so quanto possa contare ma tieni presente che l'articolo crea il grafico con Gambas 2.0....forse i problemi riscontrati potrebbero nascere dalla versione di gambas.....prova ad eliminare la tua versione di gambas ed installare quella dei repo (che è vecchissima) ed esegui di nuovo il codice....se funziona allora il problema è dovuto alla versione altrimenti è il codice ad essere sbagliato.
Titolo: Re: gb.chart
Inserito da: andy60 - 19 Ottobre 2009, 08:33:21
grazie..forse provo a vedere le istruzioni cambiate da una versione all'altra, non mi va di togliere l'ultima release
Titolo: Re: gb.chart
Inserito da: fsurfing - 19 Ottobre 2009, 12:25:06
ma perchè non lo disegni direttamente con le funzioni di disegno?
Titolo: Re: gb.chart
Inserito da: andy60 - 20 Ottobre 2009, 05:39:55
perche ci piglio con i database ma con quelle so una segaccia!!!!! :oops:
Titolo: Re: gb.chart
Inserito da: andy60 - 20 Ottobre 2009, 06:26:53
a parte gli scherzi, sul disegno dei grafici ho un problemino...se uso le routines grafiche di google o le nativa. se i dati sull'asse delle ordinate sono poco distanziati (questo succede ad esempio sui dati del peso di una persona) il grafico si appiattisce  e perde di incisività. Forse una scala logaritmica?
Titolo: Re: gb.chart
Inserito da: fsurfing - 20 Ottobre 2009, 19:39:22
be la soluzione è semplice
basta far partire il grafico da un valore + alto di 0

se nei dati il peso minimo è 60 e il massimo e 80 fai il grafico che parte da 55 e arriva a 85 così hai un bellissimo "zoom"
Titolo: Re: gb.chart
Inserito da: andy60 - 21 Ottobre 2009, 12:50:20
non ci avevo pensato...non so se le api grafiche di google lo permettono, vedro'