O componente TMainMenu do Delphi encapsula uma barra de menu e sua queda acompanha down-menus de um formulario.O componente TMainMenu Delphi nao dispoe da propriedade Visible para lhe mostrar ou ocultar o menu para em tempo de execucao, logo voce poderia dizer que nao e possivel manipular o menu e seus itens em tempo de execucao, nao e? Nao, mas existe uma maneira de esconder o menu principal para um formulario Delphi em tempo de execucao e exibir menus secundarios. Veja como ...Para atribuir um menu de um formulario, de um clique sobre o TMainMenu (digamos que ele tem "MainMenu1" para a sua propriedade Name), adicione itens de menu e atribua-os para a propriedade Menu de um formulario.Se pretender ocultar o menu de programacao, em tempo de execucao, e so usar essa linha de codigo: // MainForm e o nome do formulario MainForm.Menu: = nil;Para mostrar o menu novamente, basta transferir a propriedade Menu para o formulario: // MainForm e o nome do formulario MainForm.Menu: = MainMenu1; Para mostrar um menu secundario, basta deixar um segundo componente TMainMenu (MainMenu2) pre-configurado e executar a seguinte linha de codigo: // MainForm e o nome do formulario MainForm.Menu: = MainMenu2; Certo? Ate o proximo post! Ola pessoal, grande satisfacao poder estar de volta ao blog depois de um bom tempo sem postar. Nao que eu tenha parado de desenvolver, estou no Delphi quase que direto desenvolvendo sistemas e sites e compartilhando o tempo com manutencao de computadores aqui na loja, orcamentos, vendas de equipamentos de informatica, entre outros. Devido a alguns comentarios que recebi em outros posts aqui do blog e ate e-mails que recebi de delphianos, volto a elaborar e postar este artigo.Bom, entao para comecarmos este artigo onde irei mostrar como gerenciar o download de arquivos da internet, saber qual seu tamanho e taxa de transferencia, usaremos o Delphi 2007 for Win32, onde inicialmente criaremos um novo projeto e adicionaremos os seguintes componentes:1 - Label ('lblURL'). Caption: "URL para Download"2 - Edit ('edtURL')3 - Button ('btDownload'). Caption: "Download"4 - Gauge ('Gauge1')5 - Label ('LblDownload'). Caption: "Aguardando..."6 - Label ('lblVelocidade'). Caption: "0 kbp/s"7 - IdHTTP ('IdHTTP1')8 - SaveDialog ('SaveDialog1')Adicionados os componentes ao formulario, organize-os conforme imagem abaixo onde daremos continuidade iniciando a codificacao das acoes do sistema.Inicio do DownloadIniciaremos a codificacao do aplicativo a partir do evento WorkBegin do componente IdHTTP1, o qual e disparado no momento em que o Download do arquivo e iniciado, onde iremos declarar dentro do bloco Public da unit uma variavel para armazenar o horario de inicio do Download, adicionando a seguinte linha:FStartDate: TDateTime;Em seguida, fazendo a codificacao do evento adicionando o seguinte codigo ao mesmo:procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);begin {limpa a barra de progresso} Gauge1.Progress := 0; {define o tamanho maximo para o Gauge} Gauge1.MaxValue := AWorkCountMax; {Marcando o inicio do Download} FStartDate:= Now;end;Avanco do DownloadO controle do avanco do Download faremos a partir do evento OnWork do componente IdHTTP1, o qual sera o responsavel por incrementar o percentual de conclusao do download a cada pacote de bytes trazidos no objeto de download. Baseados no tamanho