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

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

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

Ответить
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

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

Сообщение VirtUX »

Как в Lazarus не используя WinAPI, а именно кросс-платформенно скрыть/показать главное меню формы?
Пробовал скрыть так:

Код: Выделить всё

FormMain.Menu := nil;

Не исчезает.
Пока делаю так:
- кинул на форму меню без пунктов MenuZero и собственно само меню MainMenu;
- чтобы скрыть меню привязываю пустое меню к форме FormMain.Menu := MenuZero;
- чтобы показать меню - FormMain.Menu := MainMenu;
Но хотелось бы избавиться от лишнего компонента...
absdjfh
новенький
Сообщения: 60
Зарегистрирован: 21.01.2012 13:59:00

Сообщение absdjfh »

У меня меню убралось с помощью метода 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.
xcod
постоялец
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Сообщение xcod »

у меня получилось просто передергиванием

Код: Выделить всё

form1.Menu := mainmenu1; // чтобы показать
form1.menu := nil; // чтобы скрыть


linux mint 64
думаю в винде также заработает
Ответить