MainMenu скрыть/показать

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

MainMenu скрыть/показать

Сообщение VirtUX » 10.05.2013 14:08:21

Как в Lazarus не используя WinAPI, а именно кросс-платформенно скрыть/показать главное меню формы?
Пробовал скрыть так:
Код: Выделить всё
FormMain.Menu := nil;

Не исчезает.
Пока делаю так:
- кинул на форму меню без пунктов MenuZero и собственно само меню MainMenu;
- чтобы скрыть меню привязываю пустое меню к форме FormMain.Menu := MenuZero;
- чтобы показать меню - FormMain.Menu := MainMenu;
Но хотелось бы избавиться от лишнего компонента...
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: MainMenu скрыть/показать

Сообщение absdjfh » 10.05.2013 14:51:59

У меня меню убралось с помощью метода Free.
Пример кода:
Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus;

type

  { TForm1 }

  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    procedure FormClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormClick(Sender: TObject);
begin
  MainMenu1.Free;
end;

end.
absdjfh
новенький
 
Сообщения: 60
Зарегистрирован: 21.01.2012 13:59:00

Re: MainMenu скрыть/показать

Сообщение xcod » 10.05.2013 17:40:05

у меня получилось просто передергиванием
Код: Выделить всё
form1.Menu := mainmenu1; // чтобы показать
form1.menu := nil; // чтобы скрыть


linux mint 64
думаю в винде также заработает
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 254

Рейтинг@Mail.ru