Xperl
asked on
right click...
I am using a treeview with a popup menu assigned to it. When i right click on the treeview the popup menu works ok but the problem is i want to be able to right click on a node, highlight it and get the node selected.index returned so that when i choose a command on the popup menu it knows what node i am working with.
any ideas?
any ideas?
set the option rightclickselect or similar to true in the tree option propertys
Use the TTreeView.OnContextPopup event:
procedure TForm1.TreeView1ContextPop up(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
TreeView1.Selected := TreeView1.GetNodeAt(MouseP os.x, MousePos.y);
Menu1.Caption := TreeView1.GetNodeAt(MouseP os.x, MousePos.y).Text;
end;
procedure TForm1.TreeView1ContextPop
var Handled: Boolean);
begin
TreeView1.Selected := TreeView1.GetNodeAt(MouseP
Menu1.Caption := TreeView1.GetNodeAt(MouseP
end;
ASKER
kretzschmar, i checked for a rightclickselect in the property but there isn't one.
ASKER
epsylon, there is no OnContextPopup event either.
I'm using delphi 2 if that makes a difference.
I'm using delphi 2 if that makes a difference.
delphi2, yes this makes sure a difference :-)
but i guess you can use eps code in the mousedown-event,
just check the mousebutton-before
but i guess you can use eps code in the mousedown-event,
just check the mousebutton-before
> I'm using delphi 2 if that makes a difference.
>> Sigh <<
Why do people never say which version they use when they ask a question? It is trivial information.
>> Sigh <<
Why do people never say which version they use when they ask a question? It is trivial information.
I guess the GetNodeAt() method is not there eighter in D2..?
don't know, eps, long time ago as i used d2
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
sorry epsylon - it's late here and sleep has been knocking on the door for hours but i have tried to ignore it to get a few bugs in my program sorted out.
i have arranged to have myself smacked around the head with a wet lettuce at a leter date as punishment for not giving the version number in the original question.
the good news of course is that the code you gave me seems to have worked when i put it into the mousedown event and changed the code to:
TreeView1.Selected := TreeView1.GetNodeAt(x, y);
label1.Caption := TreeView1.GetNodeAt(x, y).Text;
one thing though, what does the MousePos do and am losing something by removing it?
i have arranged to have myself smacked around the head with a wet lettuce at a leter date as punishment for not giving the version number in the original question.
the good news of course is that the code you gave me seems to have worked when i put it into the mousedown event and changed the code to:
TreeView1.Selected := TreeView1.GetNodeAt(x, y);
label1.Caption := TreeView1.GetNodeAt(x, y).Text;
one thing though, what does the MousePos do and am losing something by removing it?
>one thing though, what does the MousePos do and am losing something by removing it?
what mousepos?
if you mean x,y you need it only to select the rightclicked node, maybe you should check, if a node if afterwards really selected
TreeView1.Selected := TreeView1.GetNodeAt(x, y);
if assigned(TreeView1.Selecte d) then
label1.Caption := TreeView1.selected.Text;
what mousepos?
if you mean x,y you need it only to select the rightclicked node, maybe you should check, if a node if afterwards really selected
TreeView1.Selected := TreeView1.GetNodeAt(x, y);
if assigned(TreeView1.Selecte
label1.Caption := TreeView1.selected.Text;
ASKER
thanks kretzschmar. I will accept the answer eps gave but i shall post some points for you too for your help.
is that ok?
is that ok?
if you want, then its ok for me too :-)
>i have arranged to have myself smacked around the head with a wet lettuce at a leter date as punishment
for not giving the version number in the original question.
with a wet lettuce..? :o)
for not giving the version number in the original question.
with a wet lettuce..? :o)
Thanks a lot for the points, Xperl.