Hi Giulo, Your example had many bugs. I have simplified it in the file myclass.C below To run it, just do: root > .L myclass.C root > main() //----------file myclass.C class MyClass { public: void Draw(); }; void MyClass::Draw() { TCanvas *c = new TCanvas("c", "DEMO", 200,10,600,400); int n = 100; double *x= new double[n]; double *d= new double[n]; for(int i=0;i<n;i++) {x[i]=i; d[i] = x[i]+1;} TGraph *gr=new TGraph(n,x,d); gr->Draw("AC."); } int main(){ MyClass c1,c2; c1.Draw(); c2.Draw(); } I strongly suggest to - look at the many examples in $ROOTSYS/tutorials - see the Users Guide at: ftp://root.cern.ch/root/Users_Guide_3_1d.pdf Rene Brun Giulio Ballardin wrote: > > Part 1.1 Type: Plain Text (text/plain) > Encoding: quoted-printable Hi, I would like Draw more graphs in differents windows. I created a class, and in this class I have a member called "Draw". It well runs. But I have a problem: if I call this member for two different objects, only the first one runs. void MyClass::Draw() { // double *d contains my values // n is the number of these values double* x; TGraph *gr; int i; TApplication* theApp; TCanvas *c ; double dd=0 TROOT simple("simple","Test of histogramming and I/O"); theApp = new TApplication("",&dd,NULL); c = new TCanvas("c", "DEMO", 200,10,600,400); x= (double*)calloc(n,sizeof(double)); for(i=0;i<n;i++) x[i]=i; gr=new TGraph(n,x,d); gr->Draw("AC."); c->Update(); theApp->Run(); } Example: int main(){ MyClass c1,c2; /*elaboration of c1 and c2*/ c1.Draw(); c2.Draw(); } ..but I can see only the c1 draw!!! Thank you, Giulio Ballardin
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:38 MET