procedure TfrmMain.LoadViewMenu; var itemNum: integer;mnu: TMenuItem;menuItemHeight: integer;itemsPerColumn: integer;begin {удаляем все видимые пункты меню}while mnuView.Count > 0 do begin{метод Free удаляет пункт меню}mnuView.Items[0].Free;end; {находим высоту каждого пункта меню.Значение 2 получено в результате экспериментов} menuItemHeight := GetSystemMetrics(SM_CYMENU) + 2; {вычисляем количество пунктов в колонке меню}itemsPerColumn := screen.height div menuItemHeight; {создаем пункты меню}for itemNum := 0 to 99 do beginmnu := TMenuItem.Create(self);mnu.caption := 'Пункт ' + inttostr(itemNum); {при необходимости начинаем с новой колонки}if (itemNum mod itemsPerColumn = 0) and (itemNum>0) then beginmnu.break := mbBarBreak;end; {назначаем обработчик события OnClick}mnu.OnClick := HandleMenuClick; mnuView.Add(mnu);end;end; |
[000177]