Pilne: MenuItem i zdarzenia

0

Jak zrobić, tak aby generowane podczas pracy menu opatrzyć w zdarzenia. Chodzi tu dokładniej o coś takiego. Mam menu i doniego dodaje adresy np. jakiś stron - przez program - i chce aby po kliknięciu na ten Item otworzyła się ta strona. Wiem jak otwierać strony ! Ale nie wiem jak dynamicznie powiazać te zdarzenia.

POMOCY

0

No przecież każdy menuitem ma jakąs tam swoją nazwę. Jak ją znasz, to robisz tak:
NazwaMenuitema.Zdarzenie := NazwaFunkcjiKtoraMaBycWykonywana;

0

To nie najlepszy pomysł... Bo w ten sposób musisz napisać wszystkie funkcje z góry...
Proponuję tak: Jako Caption tego Itema walnąć adres strony, a potem tak:

procedure Proc1(Sender: TObject);
begin
ShellExecute(..., Sender.Caption, ...) //Jeżeli używasz ShellExecute do otwierania stron.
end;
{...}
Nazwa_Itema.OnClick:=Proc1; // W trakcie tworzenia...
{...}

I już...

0

Tworzysz dynamicznie TMenuItem.
W MainMenu trzeba ustawic AutoHotKeys na false;

{...}
procedure UrlClick(Sender:TObject);
private
{...}
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
Var M:TMenuItem;
Begin
M:=TMenuItem.Create(MainMenu1);
M.Caption:='http://www.4programmers.net';
M.OnClick:=UrlClick;
M.Visible:=True;
mnuURL.Add(M);
End;

Procedure TForm1.UrlClick(Sender:TObject);
Begin
ShellExecute(Self.Handle,'open',PChar(TMenuItem(Sender).Caption),Nil,Nil,SW_SHOW);
End;

end.

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