Hello,
I’m new here and I have a (hopefully) little Problem with ROOT. Since I’m not an expert in ROOT and programming, please answer so that I can understand 
I have a list of Spectra where I go through with an iterator to draw spectrum per spectrum. I want to go backward and foreward through this list with the courser keys left and right.
In principle this works.
BUT the problem is: after ROOT has drawn a histogram, I have to move the Mouse before ROOT recognizes when I hit the “next”/“previous”-button again.
when I hit buttons that have no effect on my program I can hit it as often as I want and ROOT notices it.
The Problem must be somewhere when/after I plot a new histogram.
I hope somebody knows this “feature” and can help me 
greetings
katy
Hi,
Sorry, but I don’t really understand your problem…
What are the next/previous buttons? How did you make them (are they TGButton, or TButton)?
Is it in a GUI application?
Could you post a piece of code showing what you’re trying to achieve?
Cheers,
Bertrand.
okay 
I have this list with the filenames of my spectra written in a vector.
then I take the first one, make a histogram out of the data and then draw it:
histogram->Draw(“HIST”)
then in the Canvas/Pad I look for events:
[code]
MyCanvas *cc = (MyCanvas *)gPad;
int event = gPad->GetEvent();
int px = gPad->GetEventX();
int py = gPad->GetEventY();
cc->HandleKey( event, px, py );[/code]
the HandleKey-function looks like that (only important stuff is shown)
[code]if(event==kKeyPress)
{
if(px==0 && py==4116)
{
iter++;
if(iter==spec_list.end())
{
iter=spec_list.begin();
}
h = show();
}
else if(px==0 && py==4114)
{
iter--;
if(iter==spec_list.end())
{
iter=spec_list.begin();
}
h = show();
}[/code]
iter is the iterator through my “list” (vector)
In principle this works.
But as I said above, when I have drawn a histogram, I have to move my mouse before I can hit the “next”-Button (cursor-right) again to show the next spectrum.
But I would like to hit the button to show me the next spectrum without moving my mouse everytime
OK, I undestand now 
I will check and let you know.
Cheers, Bertrand.
have you had time already to find a solution ? 
Hi Katy,
No solution yet, sorry… I’ll keep you in touch.
Cheers,
Bertrand.
oh, good to know it’s not too simple 
I’ll wait 
Hi Katy,
Could you try the macro in attachment, please?
(this could be a simple solution to your problem)
If it doesn’t help, I would need your complete code to reproduce the problem and find another solution…
Cheers, Bertrand.
testevent.C (1.68 KB)
it seems to work 
Thank you very much.
Tomorrow I will try to put it into my skript and see if it will work
You’re welcome 
And please just let me know 
– Bertrand.
It’s working now 
The principle Problem was:
If I use the Draw() - function to Plot each spectrum I have to move the mouse everytime before it takes any pressed keys.
But if I only Draw() the first spectrum and use the newSpectrum->Copy(*oldspectrum)
it works; it simply overwrites the old spectrum.
So I only have to move the mouse once at the beginning and than the rest works as I wanted it.
Thank you very much for your help 
You’re welcome
Glad to know your problem is fixed 
Cheers, Bertrand