Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Динамическая настройка меню при запуске программы


Автор: former 3.3.2006, 18:30
Как заставить программу во время запуск или отображения заставки проверять наличие нескольких DLL и в соответствии с результатом динамически настраивать главное меню? Если библиотека не найдена, то сообщение об этом выдавать не надо. Если можно, пример.

Автор: Демо 3.3.2006, 18:36
Вопрос в проверке наличия DLL или динамического формирования меню?

Автор: former 3.3.2006, 18:40
И в том и в другом. То есть при наличии определённых библиотек, определённым образом сформировать меню главной программы.

Автор: Демо 3.3.2006, 18:41
former,

Наличие файла проверяется функцией FileExists, наличие корректной библиотеки - LoadLibrary+GetProcAddress.
Добавлено @ 18:44
А вот небольшой пример из проекта:

Код

procedure TMainDisp.SetMenuApps;
var
  i: Integer;
  MI: TMenuItem;
begin
  for i := 0 to mm.Items[0].Count-1 do mm.Items[0].Items[0].Free;
  for i := pmIconTray.Items.Count-1 downto 3 do
  begin
    MI := pmIconTray.Items[i];
    pmIconTray.RemoveComponent(MI);
    MI.Free;
  end;

  for i := 0 to AppsCounter-1 do
  begin
    MI := TMenuItem.Create(mm);
    MI.Caption := Apps[i].MenuStr;
    MI.OnClick := OnStartAppsClick;
    MI.Hint := Apps[i].CommentStr;
    MI.Tag := i;
    mm.Items[0].Add(MI);
    MI := TMenuItem.Create(pmIconTray);
    MI.Caption := Apps[i].MenuStr;
    MI.OnClick := OnStartAppsClick;
    MI.Tag := i;

    pmIconTray.Items.Add(MI);
  end;
end;



Здесь pmIconTray - PopupMenu.
Для гдавного меню изменений немного.

Автор: former 3.3.2006, 18:44
Всё, я вспомнил. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)