dynamicznie tworzony komponent i popupmenu

0

Cześć,

Mam na formie popupmenu (z ustawionymi już pozycjami menu) i tworze dynamicznie komponent timage.
Jak moge teraz do niego podpiac popupmenu?

Bo jak robie
MojObrazek.Popupmenu:=Popupmenu1;

to nie dziala, nic mi sie nie pojawia po kliknieciu prawym klawiszem myszy na obrazek.

0

Metoda, którą opisałeś powinna zadziałać. U mnie w Delphi 7 Personal działa

procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1:= TImage.Create(Self);
  Image1.Parent:= Self;
  Image1.Left:= 0;
  Image1.Top:= 0;
  Image1.PopupMenu:= PopupMenu1;
end;
0

To zależy od parenta, przy Self działa prawidłowo, a jak ustawisz na formę to już nie :-P

0

CheSteR200, nie wiem czy dobrze Cię zrozumiałem?

procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1:= TImage.Create(Form1);
  Image1.Parent:= Form1;
  Image1.Left:= 0;
  Image1.Top:= 0;
  Image1.PopupMenu:= PopupMenu1;
end;

Jeżeli o to chodzi, to oczywiście też działa
Myślę, że koledze tarer2010 nie zadziałało, dlatego ze w ogóle nie ustawił, właściwości Parent.
Jeżeli się odezwie, będzie wiadomo :-)

0

Dzięki za odpowiedzi.
Jako parent mam ustawiony form1.scrollbox1

Zauwazylem, ze jak wywale linijke
Form1.MouseCapture := True;
to dziala popup.

Niestety potrzebuje tego MouseCapture. Co moge zrobic?

Pozdrawiam

0
tarer2010 napisał(a)

... Niestety potrzebuje tego MouseCapture. Co moge zrobic?

Ja bym nic nie robił.
Wystarczy raz kliknąć lewym przyciskiem myszy na Image1 i menu kontekstowe się pojawi :-)

0

No ale nie dziala :-)

Mam ustawionego image1.Parent na form1.scrollbox1

0
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.MouseCapture:= true;    // Tak dla pewności
  Image1:= TImage.Create(Self);
  Image1.Parent:= ScrollBox1;
  Image1.Left:= 0;
  Image1.Top:= 0;
  Image1.PopupMenu:= PopupMenu1;
end;

Aż nie mogę uwierzyć, że u Ciebie nie działa. Musisz coś przed nami ukrywać ;-)

PS. Oczywiście klikasz raz LPM na Image1, a potem menu kontekstowe jest pod RPM (no ale to chyba wiesz)

0

No nie dziala :/

Jedyna roznica jest taka, ze MojObrazek jest w osobnej klasie, zbudowanej przeze mnie a nie w Form1

0

no i nie mam
TImage.Create(Self);
tylko
TImage.Create(Form1.Scrollbox1)

1 użytkowników online, w tym zalogowanych: 0, gości: 1