Discutindo formulários novamente
Além dos princípios de design do formulário, você também precisa considerar onde começa e termina sua aplicação. Existem algumas técnicas para decidir como será a aparência do seu aplicativo quando for iniciado. Também é importante estar familiarizado com alguns dos processamentos que ocorrem quando um aplicativo é desinstalado.
Definir formulário de inicialização
Por padrão, o primeiro formulário do aplicativo é designado como formulário de inicialização. Este formulário é exibido quando a aplicação inicia a execução (portanto, o primeiro código a ser executado é o código do evento Form_Initialize do formulário). Se quiser exibir outro formulário quando o aplicativo for iniciado, será necessário alterar o formulário de inicialização.
Para alterar o formulário de inicialização, siga estas etapas:
1. No menu Projeto, selecione Propriedades do Projeto.
2. Selecione "Geral".
3. No ListBox "Objeto de Inicialização", selecione o formulário que será o novo formulário de inicialização.
4. Selecione OK.
Comece sem formulário de inicialização
Às vezes você pode querer iniciar o aplicativo sem carregar nenhum formulário. Por exemplo, você pode querer executar o código que carrega um arquivo de dados e depois decidir qual dos vários formulários diferentes exibir com base no conteúdo do arquivo de dados. Para fazer isso, crie um subprocesso denominado Main no módulo padrão, conforme mostrado no exemplo a seguir.
SubPrincipal()
DimintStatusAsInteger
'Chama um procedimento de função para verificar o status do usuário.
intStatus=GetUserStatus
'Exibe um formulário de inicialização com base no status.
IfintStatus=1Então
frmMain.Show
Outro
frmPassWord.Show
FimSe
Este procedimento deve ser um subprocedimento e não pode estar dentro de um módulo de formulário. Para definir o processo SubMain como objeto de inicialização, selecione "Propriedades do Projeto" no menu "Projeto", selecione "Geral" e selecione "SubMain" na caixa "Objeto de Inicialização".
Mostrar exibição rápida na inicialização
Se houver um longo processo de execução na inicialização, como carregar uma grande quantidade de dados de um banco de dados ou carregar alguns bitmaps grandes, você pode querer fornecer uma exibição rápida na inicialização. Uma exibição rápida é um formulário que normalmente exibe conteúdo como o nome do aplicativo, informações de direitos autorais e um bitmap simples. A tela exibida quando você inicia o Visual Basic é uma exibição rápida.
Para exibir uma exibição rápida, você precisa usar o processo SubMain como objeto de inicialização e usar o método Show para exibir o formulário:
PRivateSubMain()
'Mostrar exibição rápida.
frmSplash.Show
'Adicione o processo de inicialização aqui.
...
'Mostra o formulário principal e descarrega o display rápido.
frmMain.Show
DescarregarfrmSplash
Fim Sub
Uma exibição rápida pode atrair a atenção do usuário quando alguma rotina de inicialização estiver sendo executada, dando a ilusão de que a aplicação está carregando rapidamente. Quando essas rotinas de inicialização forem concluídas, o primeiro formulário poderá ser carregado e exibido rapidamente descarregado.
Para designs de exibição rápida, mantenha-os o mais simples possível. Se você usar um grande número de bitmaps ou um grande número de controles, a exibição rápida será carregada lentamente.
Finalizar aplicação
Os aplicativos orientados a eventos param de ser executados quando todos os formulários são fechados e nenhum código está em execução. Se ainda houver formulários ocultos quando o último formulário visível for fechado, o aplicativo parece ter terminado (porque não há formulários visíveis), mas na verdade o aplicativo continua em execução até que todos os formulários ocultos sejam fechados. Isso ocorre porque qualquer acesso às propriedades ou controles de um formulário descarregado fará com que esse formulário seja carregado de forma implícita e silenciosa.
A melhor forma de evitar esse tipo de problema ao fechar uma aplicação é garantir que todos os formulários sejam descarregados. Se houver mais de um formulário, você poderá usar a coleção Forms e a instrução Unload. Por exemplo, um botão de comando denominado cmdQuit pode ser usado no formulário principal para sair do programa. Caso a aplicação possua apenas um formulário, o procedimento do evento Click pode ser simplesmente:
PrivateSubcmdQuit_Click()
Descarregar-me
Fim Sub
Se seu aplicativo usar vários formulários, você poderá descarregar esses formulários colocando o código no procedimento de evento Unload do formulário principal. Você pode usar a coleção Forms para garantir que todos os formulários sejam encontrados e fechados. O código a seguir usa a coleção de formulários para descarregar todos os formulários:
PrivateSubForm_Unload(CancelAsInteger)
Dimiasinteiro
'Percorre a coleção de formulários e descarrega cada formulário.
Fori=Forms.Count-1to0Step-1
Descarregar Formulários(i)
Próximo
Fim Sub
Existem algumas situações em que é necessário encerrar a aplicação independentemente do estado dos formulários ou objetos existentes. Para esse propósito, o Visual Basic fornece a instrução End.
A instrução End faz com que o aplicativo termine imediatamente: o código após a instrução End não será executado e nenhum outro evento ocorrerá. Em particular, o Visual Basic não executará nenhum procedimento de evento QueryUnload, Unload ou Terminate do formulário. Cada referência ao objeto será liberada, mas se você definir suas próprias classes, o Visual Basic não executará o evento Terminate dos objetos criados por essas classes.
Além da instrução End, a instrução Stop pode pausar um aplicativo. No entanto, a instrução Stop só pode ser usada durante a depuração porque não libera a referência ao objeto.
Para obter mais informações sobre a instrução Stop, consulte "Usando o modo de interrupção" no Capítulo 13, "Depuração de código e tratamento de erros" e "Instrução Stop" na Referência de linguagem. Para obter informações sobre coleções de formulários ou liberação de referências de objetos, consulte o Capítulo 9, "Programando com Objetos".
Usando menus em aplicativos
Muitos aplicativos simples consistem apenas em um formulário e alguns controles, mas a funcionalidade de um aplicativo Visual Basic pode ser aprimorada com a adição de menus. Esta seção explica como criar e usar menus em seu aplicativo.
Crie menus com o editor de menus
Use o Editor de Menu para criar novos menus e barras de menu, adicionar novos comandos a menus existentes, substituir comandos de menu existentes por seus próprios comandos e modificar e excluir menus e barras de menu existentes.
Para exibir o editor de menu:
No menu Ferramentas, escolha Editor de Menu.
-ou-
Clique no botão Editor de menu na barra de ferramentas. Isto abrirá o editor de menu, conforme mostrado na Figura 6.7.
Embora a maioria das propriedades de controle de menu possam ser definidas com o Editor de Menu, todas as propriedades de menu também estão disponíveis na janela Propriedades. As duas propriedades mais importantes do controle de menu são:
Nome - Este é o nome usado para se referir ao controle de menu no código.
Legenda – Este é o texto que aparece no controle.
Outras propriedades no editor de menu, incluindo Index, Checked e NegotiatePosition, são descritas posteriormente neste capítulo.
Usando a caixa de listagem no editor de menu
A caixa Lista de controles de menu (localizada na parte inferior do Editor de menu) lista todos os controles de menu do formulário atual. Quando você digita um item de menu na caixa de texto do título, o item também aparece na caixa de listagem de controle de menu. Selecione um controle de menu existente na caixa de listagem para editar as propriedades do controle.
Por exemplo, a Figura 6.7 mostra os vários controles do menu Arquivo em uma aplicação típica. A posição de um controle de menu na caixa de listagem de controle de menu determina se o controle é um título de menu, item de menu, título de submenu ou item de submenu:
Um controle de menu localizado à esquerda de uma caixa de listagem aparece na barra de menus como o título do menu.
Um controle de menu recuado em uma caixa de listagem só aparecerá no menu quando o título do menu inicial for clicado.
Um controle de menu recuado, se seguido por alguns controles de menu recuados novamente, torna-se o título de um submenu. Cada controle de menu recuado abaixo do título do submenu torna-se o item de menu desse submenu.
Um controle de menu com um hífen (-) como propriedade Caption aparece como uma barra separadora. Barras separadoras dividem os itens de menu em grupos lógicos. Observe que um controle de menu não pode ser usado como barra separadora se for um título de menu, tiver itens de submenu, estiver marcado ou desabilitado ou tiver uma tecla de atalho.
Para criar um controle de menu no Editor de Menu, siga estas etapas:
1.Selecione o formulário
2. No menu Ferramentas, escolha Editor de Menu. -ou- Clique no botão Editor de menu na barra de ferramentas.
3. Na caixa de texto Título, digite o texto que deseja que apareça na barra de menu para o primeiro título do menu. Se quiser que um determinado caractere se torne a tecla de acesso para o item de menu, você também pode adicionar um caractere (&) na frente do caractere. Nos menus, este caractere é automaticamente sublinhado.
O texto do título do menu aparece na caixa de listagem de controle de menu.
4. Na caixa de texto Nome, digite um nome que será usado para se referir ao controle de menu no código. Consulte "Títulos de menu e diretrizes de nomenclatura" mais adiante neste capítulo.
5. Clique no botão de seta para a esquerda ou para a direita para alterar o nível de recuo do controle.
6. Se necessário, você também pode definir outras propriedades do controle. Este trabalho pode ser feito no editor de menus ou posteriormente na janela “Propriedades”.
7. Selecione “Avançar” para criar outro controle de menu. -ou- Clique em Inserir para adicionar um controle de menu entre os controles existentes. Você também pode clicar nos botões de seta para cima e para baixo para mover os controles entre os controles de menu existentes.
8. Se todos os controles de menu do formulário foram criados, selecione “OK” para fechar o editor de menus. O título do menu criado será exibido no formulário. No momento do design, clique no título de um menu para exibir o item de menu correspondente.
itens de menu separados
Uma barra separadora aparece em um menu como uma linha horizontal entre os itens do menu. Em um menu com muitos itens, você pode usar barras separadoras para dividir os itens em grupos lógicos. Por exemplo, o menu “Ajuda” do Visual Basic usa barras separadoras para dividir seus itens de menu em três grupos, como mostrado na Figura 6.8.
Para criar uma barra separadora no editor de menu, siga estas etapas:
1. Se desejar adicionar uma barra separadora a um menu existente, selecione "Inserir" e insira um controle de menu entre os itens de menu que deseja separar.
2. Se necessário, clique no botão de seta para a direita para recuar o novo item de menu até o mesmo nível do item de menu do qual ele está separado.
3. Digite um hífen (-) na caixa de texto Título.
4.Defina o atributo "nome".
5. Selecione OK para fechar o editor de menu.
Observe que embora as barras separadoras sejam criadas como controles de menu, elas não respondem aos eventos Click e não podem ser selecionadas.
Atribuir teclas de acesso e teclas de atalho
Melhore o acesso do teclado aos comandos de menu definindo teclas de acesso e teclas de atalho.
chave de acesso
As teclas de acesso permitem pressionar a tecla ALT e digitar um caractere específico para abrir um menu. Uma vez aberto o menu, o controle pode ser selecionado pressionando o caracter atribuído (tecla de acesso). Por exemplo, pressione a tecla ALT E para abrir o menu “Editar” e, a seguir, pressione a tecla P para selecionar o item de menu “Colar”. No título do controle de menu, uma tecla de acesso especificada aparece como uma letra sublinhada, conforme mostrado na Figura 6.9.
Para atribuir teclas de acesso aos controles de menu no Editor de Menu, siga estas etapas:
1. Selecione o item de menu ao qual a tecla de acesso será atribuída.
2. Na caixa Título, digite um caractere (&) diretamente na frente do caractere que deseja usar como chave de acesso.
Por exemplo, se o menu Editar mostrado na Figura 6.9 estiver aberto, o seguinte valor de configuração da propriedade Caption responderá à chave correspondente.
Observe que chaves de acesso duplicadas não podem ser usadas em menus. Se vários itens de menu usarem a mesma tecla de acesso, a tecla não terá efeito. Por exemplo, se C for a tecla de acesso para "Recortar" e "Copiar", então ao selecionar o menu "Editar" e digitar C, o comando "Copiar" será selecionado, mas somente após pressionar a tecla ENTER, o aplicação Este comando será executado. E o comando "cortar" não será executado.
tecla de atalho
Uma tecla de atalho executará imediatamente um item de menu quando pressionada. Você pode atribuir uma tecla de atalho para itens de menu usados com frequência, o que fornece um método de acesso de teclado de etapa única, em vez do método de três etapas de manter pressionada a tecla ALT, pressionar o título do menu para acessar o caractere e, em seguida, pressionar o menu item para acessar o personagem. A atribuição de teclas de atalho inclui uma combinação de teclas de função e teclas de controle, como a tecla CTRL F1 ou a tecla CTRL A. Eles aparecem à direita do item de menu correspondente no menu, conforme mostrado na Figura 6.10.
Para atribuir uma tecla de atalho a um item de menu, siga estas etapas:
1. Abra o "Editor de Menu".
2. Selecione este item de menu.
3. Selecione uma tecla de função ou combinação de teclas na caixa de combinação "Tecla de atalho".
Para remover uma atribuição de tecla de atalho, selecione "(nenhum)" no topo da lista.
Observe que a tecla de atalho aparecerá automaticamente no menu, portanto, não há necessidade de digitar a tecla CTRL na caixa Título do editor de menu;
Títulos de menu e diretrizes de nomenclatura
Para manter a consistência com outros aplicativos, é uma boa ideia seguir as diretrizes de nomenclatura estabelecidas ao criar menus.
Definir propriedade de legenda
Ao atribuir valores de título aos itens de menu, você deve tentar seguir as seguintes diretrizes:
1. Os nomes dos itens no menu devem ser exclusivos, mas itens de ação semelhantes em menus diferentes podem ter o mesmo nome.
2. O nome do projeto pode ser uma palavra, uma palavra composta ou várias palavras.
3. Cada nome de projeto deve ter um caractere exclusivo de acesso à memória para seleção de comandos com o teclado. O caractere de acesso deve ser a primeira letra do título do menu, a menos que outro caractere seja mais fácil de lembrar; dois títulos de menu não podem usar o mesmo caractere de acesso. Para obter mais informações sobre como atribuir teclas de acesso e teclas de atalho, consulte a seção "Criando menus com o Editor de menus", anteriormente neste capítulo.
4. Se um comando exigir informações adicionais antes de ser concluído, deverá haver reticências (...) após seu nome, como um comando que exibe uma caixa de diálogo ("Salvar como...", "Preferências..."). .
5. Mantenha o nome do projeto o mais curto possível. Se o aplicativo fosse localizado, o comprimento da palavra aumentaria quase 30% na versão em idioma estrangeiro, o que poderia não permitir espaço suficiente para listar os itens de menu individuais. Para obter mais detalhes sobre localização de aplicativos, consulte o Capítulo 16, “Distribuição Internacional”.
Convenção de nomenclatura de menu
Para tornar seu código mais legível e fácil de manter, é uma boa ideia seguir uma convenção de nomenclatura estabelecida ao definir a propriedade Name no editor de menu. A maioria das regras de convenção de nomenclatura recomenda identificar o objeto com um prefixo (ou seja, mnu para um controle de menu), seguido pelo nome do menu de nível superior (como Arquivo). Para submenus, isso é seguido pelo título do submenu (como mnuFileOpen).
Para obter mais informações , consulte Apêndice B, "Convenções de codificação do Visual Basic" para obter exemplos de convenções de nomenclatura recomendadas. Consulte "Convenções de codificação VisualBasic" para obter exemplos de convenções de nomenclatura recomendadas.
->