Показать сообщение отдельно
  #1  
Старый 05.11.2012, 19:53
sorockinalex sorockinalex вне форума
Начинающий
 
Регистрация: 08.08.2012
Сообщения: 178
Репутация: 10
По умолчанию Присвоение Onclick динамическому меню

Ребят, меню создаётся, только никак не могу OnClick задать... Ошибка при попытке ккомпиляции...
Вот мои процедуры:

Код:
type
  TFMain = class(TForm)
    MainMenu: TMainMenu;
    ...
    procedure MenuItemClick(Sender:TObject);
  private
    ...
    procedure CreateMenu();
  end;


procedure TFMain.CreateMenu();
var
  MenuPosition:string;
  MenuItemNames:TStringList;
  MenuItemsCount,i:cardinal;
  MenuItems:array of TMenuItem;
begin
  MenuPosition:=LoadPlugin('OilGasSprt', FMain.Handle, 'MenuPosition');
  //создаём массив MenuItemNames
  MenuItemNames:=TStringList.Create();
  StrBreakApart(MenuPosition, '<BR>', MenuItemNames);
  MenuItemsCount:=MenuItemNames.Count;
  SetLength(MenuItems,MenuItemsCount);
  //Заполняем массив элементов меню данными из массива MenuItemNames
  MenuItems[0]:=TMenuItem.Create(FMain);
  MenuItems[0].Caption:=MenuItemNames[0];
  FMain.MainMenu.Items.Add(MenuItems[0]);
  for i:=1 to MenuItemsCount-1 do
  begin
    MenuItems[i]:=TMenuItem.Create(FMain);
    MenuItems[i].Caption:=MenuItemNames[i];
    MenuItems[i-1].Add(MenuItems[i]);
  end;

  MenuItems[i].OnClick:=FMain.MenuItemClick(FMain);
  MenuItemNames.Free();
end;

procedure TFMain.MenuItemClick(Sender:TObject);
begin
  ShowMessage('MenuItemClick');
end;
Ответить с цитированием