MainMenu ???

18/12/2003

1

Boa Tarde,

Gostaria de saber como eu faço p/criar em tempo de execução um Menu...utilizando o MainMenu ??? eu gostaria de montar ele conforme os programas que eu tenho no banco de dados...

grato.


Responder

Posts

18/12/2003

Nigro

Olá amigo, aqui vai minha dica, espero que não tenha a mesma dúvida que eu...

No botão que abre o Form fsMDIChild coloque a seguinte rotina:

procedure TForm1.Button2Click(Sender: TObject);
begin
if Form3 = nil then begin
Application.CreateForm(TForm3, Form3);
end;
Form3.Show;
end;

Agora no Form que vc está abrindo (Form3, por exemplo) coloque as seguintes rotinas nos respectivos eventos:

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Janelas1.Remove(ItemNew);
action := caFree;
Form3 := nil;
end;

procedure TForm3.FormShow(Sender: TObject);
begin
ItemNew := TMenuItem.Create(Self);
ItemNew.Caption := ´Form3´;
ItemNew.OnClick := Form1.Button3.OnClick;
Form1.Janelas1.Add(ItemNew);
end;

Declare a variável ´ItemNew: TMenuItem´, na seção private do Form3.
E não se esqueça de colocar ´Menus´ na cláusula uses do Form3.
E também que vc deve tirar o Form3 da opção Auto-Create Forms, colocando o na opção Available Forms, em Project > Options > Forms.
Agora vc poderá abrir e fechar os Form´s sem problemas.
Se alguém tiver algum problema, me envie um e-mail, com os possíveis problemas e/ou soluções encontrados.

Estas rotinas também valem para os Form´s no estilo fsNormal.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira