Hello Rene,
Rene Brun <Rene.Brun_at_cern.ch> writes:
> see tutorial Slider3Demo.C (introduced a few weeks ago in CVS)
>
> Rene Brun
Thanks for your reply. I had a look through that tutorial and I think I understand much of its workings.
perhaps I should be more specific about the problem I'm having. I have the following code fragment in a class MyMainFrame:
// Vertical frame
fMainV = new TGVerticalFrame(fMainH,w/3,h);
fMainH->AddFrame(fMainV, new TGLayoutHints(kLHintsExpandY | kLHintsExpandX,10,10,10,1));
fComboFuncNames = new TGComboBox(fMainV,100);
for (Int_t i = 0; i < 4; i++) {
fComboFuncNames->AddEntry(funcnames[i], i+1);
}
fComboFuncNames->Resize(w/10,h/20); fComboFuncNames->Select(1); fComboFuncNames->Connect("Selected(Int_t)","MyMainFrame",this,"DoComboSelect(Int_t)");fLcombo = new TGLayoutHints(kLHintsTop | kLHintsLeft,5,5,5,5); fMainV->AddFrame(fComboFuncNames,fLcombo); // Sliders should be added here but defer until the selection is made in // fComboFuncNames so we know how many to create.
When an item is selected in fComboFuncNames the following function is called. It is intended that this function should create a number of sliders, the number created being dependent on the selected function.
void MyMainFrame::DoComboSelect(Int_t sel) { // Update the sliders depending on which function gets selected in // the function selection combo.
Int_t nparm;
switch (sel) {
case 1 : nparm = 3; // Gaussian
break;
case 2 : nparm = 3; // Lorentzian
break;
case 3 : nparm = 5; // Voigtian
break;
case 4 : nparm = 10; // Background (max order)
break;
default: nparm = 9;
}
// cout << "nparm = " << nparm << endl;
for (Int_t i = 0; i < nparm; i++ ) {
VSid[i] = i;
TEid[i] = i;
fVSparms[i] = new TGVSlider(fMainV, 100, kSlider2, VSid[i]); fTEparms[i] = new TGTextEntry(fMainV, fTBparms[i] = new TGTextBuffer(10), TEid[i]); fTBparms[i]->AddText(0, "0");
//--- layout for sliders
fLslider = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 0, 3, 0);
for (Int_t i = 0; i < nparm; i++ ) {
fMainV->AddFrame(fVSparms[i], fLslider);
fMainV->AddFrame(fTEparms[i], fLslider);
fTEparms[i]->Connect("TextChanged(char*)", "MyMainFrame", this, "DoText(char*)");
}
}
The combo box is drawn correctly but when I make a selection the following error is returned:
root [0] .x MyExample.C
.x MyExample.C
root [1] Error: Can't call TGVerticalFrame::AddFrame(fVSparms[i],fLslider) in current scopePossible candidates are...
filename line:size busy function type and name (in TGVerticalFrame) filename line:size busy function type and name (in TGCompositeFrame) /usr/local/lib/root/libGui.so -1:-1 0 public: virtual void AddFrame(TGFrame* f,TGLayoutHints* l=0); filename line:size busy function type and name (in TGFrame) filename line:size busy function type and name (in TGWindow) filename line:size busy function type and name (in TGObject) filename line:size busy function type and name (in TObject) filename line:size busy function type and name (in TQObject)Error: Can't call TGVerticalFrame::AddFrame(fVSparms[i],fLslider) in current scope /home/rmason/Programming/rootmac/MyExample.C:265: Possible candidates are...
filename line:size busy function type and name (in TGVerticalFrame) filename line:size busy function type and name (in TGCompositeFrame) /usr/local/lib/root/libGui.so -1:-1 0 public: virtual void AddFrame(TGFrame* f,TGLayoutHints* l=0); filename line:size busy function type and name (in TGFrame) filename line:size busy function type and name (in TGWindow) filename line:size busy function type and name (in TGObject) filename line:size busy function type and name (in TObject) filename line:size busy function type and name (in TQObject)Error: Symbol fMainV is not defined in current scope /home/rmason/Programming/rootmac/MyExample.C:265: Error: Failed to evaluate fMainV->AddFrame(fVSparms[i],fLslider)Possible candidates are... filename line:size busy function type and name
I'm sure my poor understanding of C++ is responsible for the problem. Any help you can offer will be most appreciated.
Thanks,
Roger Received on Wed Feb 22 2006 - 14:46:37 MET
This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:57 MET