| |
| Determine Which Label was Clicked |
 |
| The following information applies to: |
|
| Steps, Assumptions, Procedures:
|
I am writing a Delphi program which consists of three label objects, when
user right click the label, a popup menu will appear and perform some action
on the color of the label when clicking the menu items, but I don't know how
to identify which label was right clicked.
Please help, thanks a lot.
Answer:
Set the PopUpMenu property for all the labels to the same menu, Then for a menu
item on the PopUpMenu1 called GreenIt, the handler would be:
|
| Code:
|
1. procedure TForm1.GreenItClick(Sender: TObject);
2. begin
3. TLabel(PopUpMenu1.PopUpComponent).Font.Color := clGreen;
4. end;
|
| Results:
|
| The clicked label will turn green.
|
| Explanation:
|
| The PopUpComponent of a PopUp menu is the component calling the menu. You have
to cast it as a TLabel to keep the compiler happy, because a TComponent does
not have a Font, but a TLabel (which is the descendant of Tcomponent, and which
you know is the popup menu's caller) does. You know that, but the compiler
doesn't.
|
| Notes:
|
Submission Information:
Submitted by: Alan Lloyd
|
| E-Mail: alanglloyd@aol.com
|
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|