Solved

URGENT: TPopupMenu question

Posted on 2003-11-21
7
277 Views
Last Modified: 2010-04-05
If I have several TImage component, is it possible that each of that TImage component is using the same TPopupMenu ?

So I dont have to create popupmenu for every component.

I tried like this :

// clicking one of the popup menu item
procedure TForm1.Enable1Click(Sender: TObject);
begin
  TImage(Sender).Enable := TRUE;
end;

But I got "Access Violation" error.

Please help me.
0
Comment
Question by:klompen
7 Comments
 
LVL 3

Expert Comment

by:raidos
ID: 9796317
If the Enable1Click event is assigned to a TMenuItem then the sender will not be a TImage and TImage(Sender).Enabled := TRUE will likely fail...perhaps...i don't really understand what your trying to do...so it makes it hard to give a concrete working example..;(

Regards
//raidos
0
 

Author Comment

by:klompen
ID: 9796341
Here is the situation :

I have several TImage objects in a form :

   Image1: Timage;
   Image2: Timage;
   Image3: Timage;

And I have one TPopupMenu object :

   Popup1: TPopupMenu;
      Enable1: TMenuItem;
      Disable1: TMenuItem;

What I need to do is, assigning all those TImage objects PopupMenu property to the above Popup1. So I dont have to create 3 TPopupmenu objects for each TImage object.

Then, I should check WHICH Timage object triggered the Popup1 ?

That's my question.
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 9796349
>is it possible that each of that TImage component is
>using the same TPopupMenu ?
yes, just assign it to each timage-popupmenu-property


>But I got "Access Violation" error.
as raidos already explained the sender is the menuitem

the popupmenu has a property popupcompenent,
there is stored which component caused the popup,
just store it in a var in the onpopup-event,
so you can use it in your menuitem-onclick event

meikl ;-)



0
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

 
LVL 11

Accepted Solution

by:
ZhaawZ earned 35 total points
ID: 9796360
the name of component is be stored in PopupMenu1.PopupComponent.Name, so you can use
TImage(FindComponent(PopupMenu1.PopupComponent.Name)).Enabled := False;

:)
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 9796392
nono, ZhaawZ, not only the name, the complete refernce

an access could be

if (popupmenu1.popupcomoponent is TImage) then
  TImage(popupmenu1.popupcomoponent).Enabled := ...

meikl ;-)
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 9796396
typo
popupcomoponent -> popupcomponent
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 9796402
as it will be
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
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…
This video discusses moving either the default database or any database to a new volume.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

758 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

21 Experts available now in Live!

Get 1:1 Help Now