Zmiana toolbuttona z akcji

0

Witam

Mam pytanie. Czy jest możliwość aby z wnętrza wykonywanej akcji (TAction) dowiedzieć się w wyniku jakiego toolbutton'a została wywołana , przy czym ten toolbutton ma dropdownmenu i chodzi mi o akcje wywolaną właśnie po kliknięciu pozycji w tym menu ?

Albo inaczej, mam standardowy zestaw na formatce:

toolbar1, toolbutton1, popupmenu1, actionlist

ToolButton1 jest typu tbDropDown, i ma ustawione DropDownMenu na PopupMenu1. W popup menu jest kilka pozycji - ja chce uzystkać taki efekt: user klika którąś pozycję i ona automatycznie staje się akcją "główną" tego toolbuttona. Czyli jakbym chciał to zrobić nieuniwersalnie to bym zrobił tak:

procedure TForm1.Action1Execute(Sender: TObject);
begin
{...}
ToolButton1.Action := Action1;
end;

procedure TForm1.Action2Execute(Sender: TObject);
begin
{...}
ToolButton1.Action := Action2;
end;

A teraz jakie mam dodatkowe wymagania:

  • to musi być niezależne od logiki akcji - to znaczy nie chce się jakkolwiek odwoływać do toolbara lub buttonów z akcji (akcje mam na dodatowym datamodule, i będzie ona wykorzystywana w różnych miejscach). Czyli chciałbym aby to działało samo z siebie - czyli żeby oprogramował jakieś akcje tego toolbar'a lub button'a lub menu. Any ideas ?

Z góry dzienks.

0

Sender :>

0

Misiekd to nie takie proste. Mógłbyś rozwinąć czy masz jakiś konkretny pomysł czy tylko twierdzisz że nie wziąłem pod uwagę sender'a ? Poza tym nie chcę w samej akcji odwoływać się do tego button'a.

0

no przecież Sender to ten, co daną akcję wywołał (oczywiście jeśli nie wywołujesz akcji ręcznie). Chyba, że Cię źle zrozumiałem

0

Tak sender to ten wywołujący akcję. W moim przypadku to TMenuItem ale co dalej. Mając tego TMenuItem musżę dotrzeć do toolbutton'a który ma popupa zawierającego tego tmenuitem'a jako dropdownmenu. A więc potrzebuję takich informacji:

  • do jakiego TPopupMenu należy mój TMenuItem - wbrew pozorom na tacy jest to nie podane
  • z którego toolbutton'a się ten popup rozwinął

Są dostępne pewne informacje ale one mi nie wystarczają (TPopupMenu.PopupComponent - to jest tylko wskazanie na TToolBar'a, TBasicAction.ActionComponent - to jest ten TMenuItem).

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