Błędne działanie funkcji OnClick w dynamicznym Popu

0

Mam problem ze złym działaniem funkcji OnClick w PopupMenu przy dynamicznym tworzeniu Menu i Submenu.
Po najechaniu kursorem na dynamicznie stworzoną pozycję, uruchamia funkcję OnClick, a nie powinien.

Bardzo proszę o pomoc, może ktoś wie, jak to rozwiązać?

procedure TForm1.Button3Click(Sender: TObject);
var
Menu,m: TMenuItem;
begin
M := TMenuItem.Create(Self);
Menu := TMenuItem.Create(Self);
m.Caption:='kkk';
m.OnClick:=Button2.OnClick;
Menu.Caption:='kkk2';
Menu.OnClick:=Button2.OnClick;
Menu.Add(M);
PopupMenu1.Items.Add(Menu);
end;

0

Sprawa jest prosta - zrobiłeś taką hierarchię:
PopupMenu --> Menu (kkk2) --> M (kkk)

Menu kkk2 znajduje się w środku hierarchii (ma obiekty podrzędne), tak więc stało się menu rozwijanym.

W rozwijanych pozycjach menu wydarzenie OnClick uruchamiane jest nie tylko przy naciśnięciu przycisku, ale nawet przy rozwinięciu pozycji, tak więc winę ponosi Menu.OnClick:=Button2.OnClick;

Bez tej linijki event będzie się uruchamiał tylko przy wybraniu pozycji kkk.

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