So wäre es auch gegangen:
Delphi-Quellcode:
procedure SetItemEvent(aMenuItem: TMenuItem;
aMeasureItem: TMenuMeasureItemEvent;
aDrawItem: TAdvancedMenuDrawItemEvent);
var
i : Integer;
begin
for i := 0 to pred(aMenuItem.Count) do
with aMenuItem.Items[i] do
begin
OnAdvancedDrawItem := aDrawItem;
OnMeasureItem := aMeasureItem;
SetItemEvent(aMenuItem.Items[i], aMeasureItem, aDrawItem);
end;
end;
procedure TFormIrgendWas.FormCreate(Sender: TObject);
var
i : Integer;
begin
for i := 0 to pred(MainMenu1.Items.Count) do
with MainMenu1.Items[i] do
SetItemEvent(MainMenu1.Items[i], SubItemMeasureItem, SubItemAdvancedDrawItem);
end;
Die beiden Events musst du dann nicht mehr jedem Item im
OI zuweisen.