Einzelnen Beitrag anzeigen

Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#9

Re: MenuItems hinzufügen und mit OnClick ausrüsten

  Alt 27. Mär 2006, 15:36
Hallo, hatte auch mal so eine Funktion brauchen müssen und habe das folgendermaßen gelöst.

Ich erstelle aus einer Liste alle Menüeinträge an eine bestimmte Position:

Delphi-Quellcode:
  s := TStringList.Create;
  ico := TIcon.Create;
  try
    ini.ReadSections(s);
    for i := 0 to s.Count - 1 do
    begin
      MItem := TMenuItem.Create(nil);
      MItem.Caption := s.Strings[i];
      MItem.Name := MItem.Caption;
      ico.LoadFromFile(myIcon);
      MItem.ImageIndex := ImageList.AddIcon(ico);
      anz := MainMenu1.Items.Items[1].Items[0].Count;
      MainMenu1.Items.Items[1].Items[0].Insert(anz, MItem);
      MainMenu1.Items.Items[1].Items[0].Items[0].OnClick := MenuItem.OnClick;
    end; // for i:=0...
  finally
    s.Free;
    ico.Free;
  end;
Wie man im Code sieht weise ich dem neu erstellten Item ein bestimmtes OnClick-Ereignis zu. Das bezieht sich auf den folgenden Menupunkt.
Im Menü habe ich einen Eintrag erstellt, auf invisible gesetzt und dort ein OnClick-Ereignis erstellt, in dem ich dann unterschiedliche Funktionen ausführe, die der einzelne Menüpunkt ausführen soll. Dort überprüfe ich nach der Caption des Eintrags welche Funktion ausgeführt werden soll.

Delphi-Quellcode:
  myLang := (Sender as TMenuItem).Caption;
  if myLang = 'Germanthen
  ...
Das funktioniert wunderbar und ich kann den Sender bzw. den Menüpunkt abfragen welcher gerade das Onlick-Ereignis ausgeführt hat.
Hoffe das hilft dir weiter.

Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat