Newsgroup: it.comp.lang.delphi
Titolo: Chart

Salve a tutti...
Avrei un problema più che altro di componenti...
Mi é stato richiesto di fare un grafico che visualizzi l'andamento economico 
dei costi in un mese...
Il mio problema é che usando delphi5 il componente vtchart da la possibilità 
di utilizzare fino a 24 elementi mentre a me ovviamente me ne servono 31....
Avete qualche link x scaricare componenti che facciano chart
Grazie 

hai gia visto sui soliti siti?
AS

 ha scritto nel messaggio 
news:1132136735....@f14g2000cwb.googlegroups.com...


 Avete qualche link x scaricare componenti che facciano chart
Hai usato il componente ActiveX *VtChart*?
Non hai provato ad utilizzare invece il controllo *TChart* nella pagina 
"Additional" della Palette dei Componenti?
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 ha scritto nel messaggio 
news:437b133a$1...@newsgate.x-privat.org...


 non l'ho quel componente...
Che io sappia, esiste da sempre, anche da Delphi 5. :-/


 ha scritto nel messaggio 
news:437b257b$1...@newsgate.x-privat.org...


 componente..... l'help nn e' che sia così esauriente...
Fai clic con il tasto destro e seleziona "Edit chart" (se ricordo bene 
il nome della voce di menu, che non si sa mai...). :-)
Richiamerai così il "component editor" che fornisce un'interfaccia forse 
un poco più intuitiva per configurare il controllo visuale, creare le 
serie, definire la sorgente dei dati, impostare gli assi, modificare 
titoli, margini, legende e così via...
Ciao,
   Marco.


Sono riuscito a far funzionare +/- il componente chart che mi avevi 
consigliato...
 Il +/- e' dovuto al fatto che quando finisce di costruire il grafico mi da 
un'eccezione... invalid operation...
Mi si stanno storgendo gli occhi oramai... Che cosa c'e' secondo te che non 
funziona....
Premetto che ho gia' modificato i nomi delle variabile pensando andassero ad 
interferire in qualche altra unit...ma niente :-(
procedure TAndamento_MoviC_.suiComboBox1Change(Sender: TObject);
Var
   I                    : Integer;
   nSaldo               : Real;
   aGiorni              : Array Of Real;
   Year , Month , Day   : Word;
begin
   If suiComboBox1.Text <> '< Da Selezionare >' Then
   Begin
      Screen.Cursor             := crHourGlass;
      nSaldo                    := 0;
      SetLength(aGiorni,Form1.QuantiGiorni(suiComboBox1.ItemIndex+1,StrToInt(Main_.Anno_Work)));
      Main_.Data_Now_INI        := '01/01/' + Main_.Anno_Work;
      Main_.Data_Now_FIN        := 
Form1.GiustificaDX(IntToStr(suiComboBox1.ItemIndex+1),'0',2);
      Main_.Data_Now_FIN        := '01/' + Main_.Data_Now_FIN + '/' + 
Main_.Anno_Work;
      QY.Close;
      QY.SQL.Clear;
      QY.SQL.Add('Select Data , Entrate , Uscite From MoviC');
      QY.SQL.Add('Where (Data >= cDate(''01/01/' + Main_.Anno_Work + ''')) 
And (Data <= cDate(''' + Main_.Data_Now_INI + '''))');
      QY.SQL.Add('Order BY Data');
      QY.Open;
      While Not QY.Eof Do
      Begin
         nSaldo := nSaldo + (QYEntrate.AsCurrency - QYUscite.AsCurrency);
         QY.Next;
      End;
      aGiorni[0] := nSaldo;
      Main_.Data_Now_INI        := '02/' + 
Form1.GiustificaDX(IntToStr(suiComboBox1.ItemIndex+1),'0',2) + '/' + 
Main_.Anno_Work;
      Main_.Data_Now_FIN        := 
IntToStr(Form1.QuantiGiorni(suiComboBox1.ItemIndex+1,StrToInt(Main_.Anno_Work))) 
+ '/' + Form1.GiustificaDX(IntToStr(suiComboBox1.ItemIndex+1),'0',2) + '/' + 
Main_.Anno_Work;
      QY.Close;
      QY.SQL.Clear;
      QY.SQL.Add('Select Data , Entrate , Uscite From MoviC');
      QY.SQL.Add('Where (Data >= cDate(''' + Main_.Data_Now_INI + ''')) And 
(Data <= cDate(''' + Main_.Data_Now_FIN + '''))');
      QY.SQL.Add('Order BY Data');
      QY.Open;
      While Not QY.Eof Do
      Begin
         DecodeDate(QYData.AsDateTime , Year , Month , Day);
         aGiorni[Day]:= (QYEntrate.AsCurrency - QYUscite.AsCurrency);
         QY.Next;
      End;
      nSaldo := aGiorni[0];
      For I := 0 To (Length(aGiorni)-1) Do
      Begin
         If aGiorni[I] <> 0 Then nSaldo := nSaldo + aGiorni[I];
         aGiorni[I] := nSaldo;
      End;
      For I := 0 To (Length(aGiorni)-1) Do 
Chart1.Series[0].AddXY(I,aGiorni[I],'',clTeeColor);
      Screen.Cursor := crDefault;
   End;
end;

 funziona....  [...]
Il codice è un po' troppo voluminoso... :-)
Qual è l'istruzione che ti restituisce l'eccezione? Hai provato ad 
eseguire il tutto passo per passo? Hai verificato le istruzioni della 
Guida in linea per il metodo o la proprietà su cui ottieni l'errore?
Riorganizza il codice in modo più semplice così possiamo analizzarlo 
tutti senza rovinare anche i nostri di occhi. ;-)
I miei hanno già un pied...la pupilla nella fossa. :-P


 ha scritto nel messaggio 
news:437bc...@newsgate.x-privat.org...


 ha scritto nel messaggio 
news:437c421a$0$13267$4faf...@reader2.news.tin.it...


 Ti confermo che dovrebbe esser un bug del componente... 
Vediamo...se rimuovi l'ultima istruzione del codice che hai postato, che 
è l'unica parte (se non mi è sfuggito) riguardante il *TChart* in modo 
specifico, non viene segnalato alcun errore? :-/
Inoltre, usa il tipo *Double* invece del *Real*: è più performante, 
oltre al fatto che il Real potrebbe chiuderti strade di porting verso 
.NET in futuro.
