Ciao Alberto,
Il 16/04/2021 14:29, Alberto Salvati ha scritto:
> Puoi postare il codice che usi per definire assi e serie?
Ecco parte del codicillo..
Questo grafico usa le librerie Steema TeeChart free fornite con le varie
versioni di delphi.
Cht1 : TChart;
LM1 : TLineSeries;
BM1 : TBarSeries;
MyAxis : TChartAxis; // E' un asse secondario ..
Cht1 viene generato auomaticamente
Nella oncreate della form ...
LM1:=TLineSeries.Create(Self);
BM1:=TBarSeries.Create(Self);
LM1.ParentChart:=Cht1;
BM1.ParentChart:=Cht1;
Cht1.LeftAxis.Minimum:=1;
Cht1.LeftAxis.Maximum:=YMese;
Cht1.BottomAxis.Axis.Color:=clGreen;
Cht1.CustomAxes.Add;
Cht1.CustomAxes[0].Horizontal:=True;
Cht1.CustomAxes[0].Axis.Color:=clRed;
Cht1.CustomAxes[0].PositionPercent:=-30;
Cht1.CustomAxes[0].Automatic:=True;
Cht1.CustomAxes[0].AutomaticMaximum:=True;
Cht1.CustomAxes[0].AutomaticMinimum:=True;
Quando popolo il grafico filtro il db per mese e per anno, inoltre nel
record del db si trova il campo giorno.
Anno Mese Giorno sono definti come Word
Il grafio e' popolato con
LM1.AddXY(X,Y,IntToStr(A),Colore);
dove
X e' il punto del grafico (primo, secondo terzo ecc...)
Y e' il valore monetario (1250,35)
IntToStr(A) e' il valore numerico del giorno, la label che viene messa
sotto il punto
Colore e' il colore del tratto del segmento del grafico.
Inoltre, l'ascissa e' settata con
Cht1.BottomAxis.Maximum:=DaysInMonth(Cal1.Year,Cal1.Month);
Cht1.BottomAxis.Minimum:=1;
Cht1.BottomAxis.Title.Caption:= xxx // Titolo dell'asse
Cal1 e' un componente calendario
Le librerie TMS mettono a disposizione diversi compopnenti per i
grafici, quello suggerito da loro per lavorare con le data e' nelle
librerie FNC.
Non e' per niente facile lavorare con nessuno di questi ..... perche' a
ounti di forza si contrappongono punti deboli assai piu' incisivi dei
punti di foza.
Teechart e tms vclchart (chiamiamolo cosi') non permettono di lavorare
con i giorni sule ascisse se non con artifici vari (per esempio un array
di record in cui registrare il punto con il giorno in formato tdate(time)).
L'altro, il fncchart, permette di avere i giorni sulle ascisse in
formato tdate(time) ma (come nel mio caso) se si hanno piu' serie
(quindi piu' valori di "giorno" e piu' valori "currency" sull Y, si deve
decire quale delle 2 tenere come riferimento principale (nel mio caso le
X) e l'altro asse risulta sfalsato ovvero ho 2 assi Y con valori diversi).
Ad oggi non ho trovato nessuna risoluzione completa alle mie necessita'
ma soltanto dei compromessi.
Sto valutando se sostituire il teechat con il fncchart ma i primi
risultati *NON* sono incoraggianti !!
Tornando a noi, non credo sia quello che volevi, o stavi cercando.
Mi spiace ...
Ciao
Daniele
PS: mi sono dilungato un po .. scusami ..