Fórum Como acessar TMainMenu !!! #411920

25/01/2012

0

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

Responder

Posts

25/01/2012

Marco Salles

voce esta utilizando showmodal ou show na chamada desses formulários ??
Responder

Gostei + 0

25/01/2012

Weberley Guelsi

estou usando ShowModal mesmo, não quero usar somente Show
Responder

Gostei + 0

25/01/2012

Marco Salles

então tente com o show e veja se te atende...
Responder

Gostei + 0

25/01/2012

Weberley Guelsi

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
Responder

Gostei + 0

25/01/2012

Marco Salles

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
Responder

Gostei + 0

26/01/2012

Weberley Guelsi

vc tem algum exemplo desse frame ? eu nunca usei
Responder

Gostei + 0

26/01/2012

Marco Salles

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar