Solved

right click...

Posted on 2001-07-13
15
170 Views
Last Modified: 2010-04-04
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?
0
Comment
Question by:Xperl
  • 6
  • 5
  • 4
15 Comments
 
LVL 27

Expert Comment

by:kretzschmar
ID: 6279830
set the option rightclickselect or similar to true in the tree option propertys
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6279852
Use the TTreeView.OnContextPopup event:

procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  TreeView1.Selected := TreeView1.GetNodeAt(MousePos.x, MousePos.y);
  Menu1.Caption := TreeView1.GetNodeAt(MousePos.x, MousePos.y).Text;
end;
0
 

Author Comment

by:Xperl
ID: 6279853
kretzschmar, i checked for a rightclickselect in the property but there isn't one.
0
 

Author Comment

by:Xperl
ID: 6279858
epsylon, there is no OnContextPopup event either.

I'm using delphi 2 if that makes a difference.
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 6279865
delphi2, yes this makes sure a difference :-)

but i guess you can use eps code in the mousedown-event,
just check the mousebutton-before
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6279873
> 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.
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6279878
I guess the GetNodeAt() method is not there eighter in D2..?
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 27

Expert Comment

by:kretzschmar
ID: 6279887
don't know, eps, long time ago as i used d2
0
 
LVL 13

Accepted Solution

by:
Epsylon earned 150 total points
ID: 6279898
With OnMouseDown it would be (Menu1 is a menu item):

procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 TreeView1.Selected := TreeView1.GetNodeAt(X, Y);
 Menu1.Caption := TreeView1.GetNodeAt(X, Y).Text;
end;
0
 

Author Comment

by:Xperl
ID: 6279909
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?
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 6279924
>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.Selected) then
  label1.Caption := TreeView1.selected.Text;

0
 

Author Comment

by:Xperl
ID: 6279958
thanks kretzschmar.  I will accept the answer eps gave but i shall post some points for you too for your help.

is that ok?  
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 6279963
if you want, then its ok for me too :-)
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6279976
>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)
0
 
LVL 13

Expert Comment

by:Epsylon
ID: 6279991
Thanks a lot for the points, Xperl.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now