Como acessar TMainMenu !!!

Delphi

25/01/2012

olá

eu criei um sistema e o menu principal e os outros formularios estão com a propiedade FormStyle = fsNormal, mas quando eu abro um formulario eu não tenho mais acesso ao Menu (TMainMenu) como faço para ter acesso? eu não quero colocar eles como fsMDIForm e fsMDIChild, eles tem que ficar normal mesmo mas quero ter acesso ao Menu do formulario principal, alguem pode me ajudar ?

desde ja agradeço
Weberley Guelsi

Weberley Guelsi

Curtidas 0

Respostas

Marco Salles

Marco Salles

25/01/2012

voce esta utilizando showmodal ou show na chamada desses formulários ??
GOSTEI 0
Weberley Guelsi

Weberley Guelsi

25/01/2012

estou usando ShowModal mesmo, não quero usar somente Show
GOSTEI 0
Marco Salles

Marco Salles

25/01/2012

então tente com o show e veja se te atende...
GOSTEI 0
Weberley Guelsi

Weberley Guelsi

25/01/2012

com o Show nao atende pq o FormStyle esta fsNormal, e dai quando eu clico no menu la em cima o formulario aberto some, ele fica embaixo do principal
GOSTEI 0
Marco Salles

Marco Salles

25/01/2012

não sei se resolve , mas voce ja çeu sobre Frame

pq voce pode criar um Frame que pode ter este Main e ser compartilhado entre todos os
Forms .. a vantagem que não precisa recria-los , tipo uma herança

Isto te ajuda ???

Aceita-se sujestões de outros amigos , que podem ter entendido o problema melhor do que eu
ou solução mais eficaz
GOSTEI 0
Weberley Guelsi

Weberley Guelsi

25/01/2012

vc tem algum exemplo desse frame ? eu nunca usei
GOSTEI 0
Marco Salles

Marco Salles

25/01/2012

vc tem algum exemplo desse frame ? eu nunca usei


[quote=weberley]poxa, será que ninguem sabe isso?



eu lhe sugeri o uso de Frames .. Achei que fosse fácil , mas tentei e não consegui . Pesquisei na google e parece ter muitas dúvidas com a utilização
de Maim com Frames .. Então achei esta solução que aperetemente
resolve

No Form que será criado na secção interfaces declares uses a 
 Menus


na secção publica declares uses a  define
public
{ Public declarations }
FMymain:TMainMenu;
constructor Create(owner:TComponent;Mymain:TMainMenu);reintroduce;
end;


Implemente o método

constructor TForm3.Create(owner:TComponent;  Mymain: TMainMenu);
begin
   inherited  create (Owner);
   FMymain:=TMainMenu.Create(self);
   FMymain.Merge(Mymain);
   self.Menu:= FMymain;
end;


Agora no Formulári oPrincipal faça a chamada ao Form que ser a criado

var
formulario:TForm;
begin
 formulario:=TSEUFORM.Create(nil,self.MainMenu1);
 try
    formulario.ShowModal
 finally
    TSEUFORM(formulario).FMymain.Unmerge(MainMenu1);
    formulario.Free;
    formulario:=nil;
 end;
end;


Perceba[b] TSEUFORM[/b] é a classe do seu Form que será criado

testei aqui , destrui e instancie o objeto Form várias vezes e apareceu
o MaimMenu do formPrincipal no form criado

espero que seje útil
GOSTEI 0
POSTAR