Нужно сосздать главное меню динамически, на этапе выполнения программы. Причем приложение кроссплатформенное (Win + Linux).
Под Win меню создать можно через WinAPI. 
А как под Linux?
Может есть пример?
			
		Модератор: Модераторы


var
NewMenuItem:TMenuItem;
begin
try
NewMenuItem:=TMenuItem.Create;
NewMenuItem.caption:='blabla';
NewMenuItem.OnClick:=@Процедура обработки кликов
...
//Дальше у менюшки делаем insert/add или что там есть в подсказке.
except
NewMenuItem.Free;
end;
end;

procedure additem(Owner:TMenuItem; Caption:string);
var
  item : TMenuItem;
begin
  item := TMenuItem.Create(Owner);
  item.Caption := Caption;
  Owner.Add(item);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
  FMenu1 : TMainMenu;
begin
  FMenu1 := TMainMenu.Create(nil);
  //FMenu1.HandleNeeded;
  FMenu1.WindowHandle := Self.Handle;
  additem(FMenu1.Items,'Menu item 1');
  additem(FMenu1.Items,'Menu item 2');
  additem(FMenu1.Items,'Menu item 3');
  additem(FMenu1.Items[0],'Sub item 1-1');
  additem(FMenu1.Items[0],'Sub item 1-2');
  additem(FMenu1.Items[1],'Sub item 2-1');
  additem(FMenu1.Items[2],'Sub item 3-1');
  additem(FMenu1.Items[0].Items[0],'Sub Sub item 1');
  additem(FMenu1.Items[0].Items[0],'Sub Sub item 2');
end;
Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1