Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

right click...

Posted on 2001-07-13
15
Medium Priority
?
182 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

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
 
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 600 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
Suggested Courses

670 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