VB 2005 - O objeto Application
O objeto Application representa a aplicação que esta em execução no nível mais alto. Ele fornece propriedades e métodos para iniciar um laço de eventos para processar mensagens Windows, possivelmente para um formulário. Fornecendo também métodos para controlar e parar estes eventos.
A classe Application fornece métodos e propriedades para gerenciar uma aplicação como métodos para iniciar e parar a aplicação , processar mensagens do Windows e propriedades que obtêm informação sobre uma aplicação.
Você não deve confundir o objeto Application com o namespace My.Application. Ambos possuem propósitos similares mas características muitos diferentes.
Application - Propriedades
A tabela a seguir descreve as propriedades mais úteis do objeto Application;
Propriedade | Propósito |
---|---|
CommonAppDataPath | Retorna o caminho onde o programa armazenara os dados da aplicação compartilhados com todos os usuários. Por padrão este caminho possui o formato base_path\ company_name\product_name\product_version onde base_path é basicamente C:\Documents and Settings\All Users\ Application Data.(C:\Documents and Settings\All Users\Dados de aplicativos) |
CommonAppDataRegistry | Retorna a chave do Registro onde o programa armazenara dados da aplicação compartilhados com todos os usuários. Por padrão este caminho possui o formatoHKEY_LOCAL_MACHINE\Software\company_name\product_name\product_version |
CompanyName | Retorna o nome da empresa. |
CurrentCulture | Obtêm ou define o objeto CultureInfo para esta thread. |
CurrentInputLanguage | Obtêm ou define InputLanguage para esta thread |
ExecutablePath | Retorna o caminho qualificado para o arquivo que inicia a execução incluindo o nome. |
LocalUserAppDataPath | Retorna o caminho onde o programa armazenará dados para este local.Por padrão , este caminho possui o formato : base_path\company_name\product_name\product_version, onde base_path é C:\Documents and Settings\user_name\LocalSettings\Application Data.Ex: C:\Documents and Settings\f5361091\Configurações locais\Application Data |
MessageLoop | Retorna True se a Thread possui um loop de mensagem . Se o programa inicia com um formulário este laço é criado automaticamente. Se o programa com um Sub Main, o loop não existe inicialmente e o programa deve iniciar pela chamada Application.Run. |
OpenForms | Retorna uma coleção que referencia todos os formulários abertos da aplicação. |
ProductName | Retorna o nome do produto. |
ProductVersion | Obtêm a versão do produto associado com a aplicação. |
StartupPath | Retorna o caminho qualificado para o diretório onde o programa inicia a execução. |
UserAppDataPath | Retorna o caminho onde o programa armazenará para o usuário. Por padrão este caminho possui o formato: base_path\company_name\product_name\product_version, onde o base_path é C:\Documents and Settings\user_name\Application Data. |
UserAppDataRegistry | Retorna a chave do registro onde o programa armazenará os dados da aplicação para este usuário.Por padrão o caminho possui o formato: HKEY_CURRENT_USER\Software\company_name\product_name\product_version |
UseWaitCursor | Determina se esta thread do formulário exibe um cursor de espera. Defina esta propriedade como True antes de executar qualquer operação demorada e quando a operação terminar retorna o valor para False. |
Para definir o nome da empresa , o nome do produto e a sua versão abra o Solution Explorer clique duas vezes sobre a entrada My Project , e selecione a guia Application; clique então sobre o botão Assembly Information e entre os valores na janela de diálogo Assembly Information.
A seguir os métodos mais úteis do objeto Application;
Método | Objetivo |
---|---|
AddMessageFilter | Inclui um filtro de mensagem para monitorar o loop de eventos das mensagens Windows. |
DoEvents | Processa as mensagens Windows que estão atualmente na fila de mensagem. Se a thread esta realizando uma operação demorada , evita o congelamento da thread permitindo a execução de outras mensagens. |
Exit | Encerra a aplicação. É uma maneira abrupta de encerrar a aplicação e qualquer formulário que estiver carregado não executará os eventos FormClosing e FormClosed , por isso devemos ter certeza de que a aplicação executou o código para limpar seus objetos antes de chamar este método. |
ExitThread | Encerra a thread atual. uma maneira abrupta de encerrar a aplicação e qualquer formulário que estiver carregado não executará os eventos FormClosing e FormClosed |
OnThreadException | Executa o objeto da aplicação ThreadException, passando uma exceção. Se a aplicação lança uma exceção não capturada no IDE ele travará. |
RemoveMessageFilter | Remove o filtro da mensagem. |
Run | Executa o loop de mensagem para a thread atual. Se você passar este método para o objeto form, ele exibirá o formulário e processa as mensagens até ser fechado. |
SetSuspendState | Faz com que o sistema suspenda a operação ou hiberne. Quando o sistema hiberna ele grava o conteúdo da memória para o disco. Quando você reinicia o sistema ele continua com a aplicação anteriormente em execução. Quando o sistema suspende a operação ele entra em modo de baixa energia e pode continuar mais rapidamente do que se estivesse hibernando mas o conteúdo da memória não será salvo. |
O objeto Application fornece alguns eventos que dá informação sobre o estado da aplicação;
Evento | Objetivo |
---|---|
Idle | Ocorre quando a aplicação encerra a execução de algum código e esta prestes a entrar no estado de espera aguardando algum evento. |
ApplicationExit | Ocorre quando a aplicação esta prestes a ser encerrada.(shut down) |
ThreadException | Ocorre quando a aplicação lança uma exceção não tratada. |
ThreadExit | Ocorre quando a thread esta prestes a ser encerrada. |
Quando você encerra uma aplicação descarregando o seu formulário (Unload) , o programa recebe os eventos na seguinte ordem:
Se você encerrar a aplicação chamando o método Exit do objeto Application (Application.Exit) , o programa somente recebe os eventos : ThreadExit e ApplicationExit. Se mais de uma thread estiver em execução cada uma recebe o evento ThreadExit e em seguida recebem o evento ApplicationExit.
Vejamos um exemplo que lista números em um controle ListBox. Cada vez que você clicar no botão , a aplicação inclui outro número na lista.
O método Main chama o método Run para iniciar a aplicação que cria o formulário , o ListBox1 e o Button1. Quando o usuário clica no botão Button1 o evento button1_Click exibe uma caixa de mensagem solicitando ao usuário se ele deseja encerrar a aplicação.(MessageBox)
Se o usuário clicar Não na MessageBox, o evento Click inclui um número na lista. Se o usuário clicar Sim , a aplicação chama o método Exit para processar todas as mensagens restantes na fila e então encerrar;
Public
Class Form1 Inherits Form <STAThread()> _ Shared Sub Main() ' inicia a aplicação. Application.Run(New Form1) End Sub Private WithEvents button1 As Button Private WithEvents listBox1 As ListBox Public Sub New() button1 = New Button button1.Left = 200 button1.Text = "Sair" listBox1 = New ListBox Me.Controls.Add(button1) Me.Controls.Add(listBox1) End Sub Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click Dim count As Integer = 1 ' Verifica se o usuário deseja sair da aplicação ' Se não inclui um numero na listbox While (MessageBox.Show("Sair da aplicação?", "", MessageBoxButtons.YesNo) = DialogResult.No) listBox1.Items.Add(count) count += 1 End While ' sai da aplicação Application.Exit() End Sub |
referências: http://msdn2.microsoft.com/en-us/library/system.windows.forms.application.aspx
Até o próximo artigo VB .NET ...
José Carlos Macoratti