Dear Rene Thank you for your answer. (Probably, I may have some follow-up questions in the future.) Best regards Christian Rene Brun wrote: > Hi Christian, > > Example: > > //-----file mymacro.C > void mymacro(Myclass *a) { > printf("fX=%g\n",a->getX()); > } > > > and in ClassA::DoMacro(const char *macro, int n) > gROOT->ProcessLine(Form("%s((ClassA*)0x%lx,%d",(Long_t)this,n)); > > Rene Brun > > > On Sun, 4 Aug 2002, cstrato wrote: > > >>Dear Rooters >> >>Root offers the nice possibility to execute macros from user code. As >>far as I understand, this is ultimately done by calling >>gROOT->ProcessLine() or gInterpreter->ProcessLine(). >> >>My question is, if I can also call a macro from a class method, where >>the macro needs to have access to the class members. For example: >> >>ClassA: public TNamed { >>private: >> float fX; >> float fY; >>public: >> void DoSomething( int n); >> void DoMacro(const char *macro, int n); >> int GetX() {return fX;} >> void SetY(float y) {fY=y;} >>} >> >>The main program does: >>Class *a=new ClassA(); >>a->DoSomething(3); >>a->DoMacro(".x MyMacro.C+", 3); >> >>where the macro MyMacro should be able to access both fX and n: >>MyMacro() // or: MyMacro(int n) ? >>{ >> float x=this->GetX(); //?? >> float y=x*n; >> this->SetY(y); >>} >> >>Is this in principle possible, and what would be the best way to do it? >> >>Thank you in advance for your help >> >>Best regards >>Christian >>_._._._._._._._._._._._._._._._._ >>C.h.r.i.s.t.i.a.n S.t.r.a.t.o.w.a >>V.i.e.n.n.a A.u.s.t.r.i.a >>_._._._._._._._._._._._._._._._._ >> >> >> > > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:03 MET