Einzelnen Beitrag anzeigen

KHJ

Registriert seit: 15. Dez 2005
41 Beiträge
 
Delphi 12 Athens
 
#6

AW: TMainMenu: Änderung der Schriftgröße ändert nicht den Abstand der Einträge

  Alt 20. Jun 2025, 10:41
Um nicht nur den Toplevel zu ändern, sondern auch alle Submenus:

Delphi-Quellcode:
  procedure RefreshMenuItem(aMenuItem: TMenuItem);
  var
    lTempItem: TMenuItem;
    i: Integer;
  begin

    lTempItem := TMenuItem.Create(aMenuItem);
    try
      lTempItem.Caption := 'tempitem';
      aMenuItem.Add(lTempItem);
      aMenuItem.Delete(aMenuItem.Count - 1);
    finally
      lTempItem.Free
    end;

    // and rekursiv through all sub menus of the current menu item
    for i := 0 to aMenuItem.Count - 1 do
    begin
      RefreshMenuItem(aMenuItem.Items[i]);
    end;
  end;

  procedure RefreshMainMenu(aMenu: TMainMenu);
  var
    i: Integer;
    lTempItem: TMenuItem;
  begin

    // toplevel
    lTempItem := TMenuItem.Create(aMenu);
    try
      lTempItem.Name := 'tempitem';
      aMenu.Items.Add(lTempItem);
      aMenu.Items.Remove(lTempItem);
    finally
      lTempItem.Free;
    end;

    // sublevels
    for i := 0 to aMenu.Items.Count - 1 do
    begin
      RefreshMenuItem(aMenu.Items[i]);
    end;
  end;
Karlheinz Jansen

Geändert von KHJ (21. Jun 2025 um 09:07 Uhr)
  Mit Zitat antworten Zitat