Buscar

Um componente de tstatusbar

Código

Um componente de TStatusBar (situado na página “Win32” do palette componente) pode ser usado adicionar uma barra de status a um formulário. A propriedade dos painéis de um TStatusBar é usada adicionar, remover ou modificar os painéis da barra de status (cada painel é representado por um objeto de TStatusPanel).
Um TProgressBar (situado na página “Win32” do palette componente) indica uma barra simples do progresso. As barras do progresso fornecem usuários com o gabarito visual sobre o progresso de um procedimento dentro de uma aplicação.
 
ProgressBar em StatusBar
Quando colocado em um formulário o TStatusBar alinha-se automaticamente ao fundo (alinhar a propriedade = o alBottom). Inicialmente tem apenas um painel.
É aqui como adicionar os painéis aos painéis que coleção (uma vez que uma barra de status foi adicionada a um formulário, vamos dizer que tem o nome do defeito “StatusBar1”):
1.      Clique dobro o componente da barra de status para abrir o editor dos painéis
2.      Direito estalar sobre o editor do painel e selecioná-lo “adicionam” - este anúncios um objeto de TStatusPanel à coleção dos painéis. Adicionar um mais.
3.      Selecionar o primeiro painel, e usando o Inspector do objeto, atribuir o “progresso: ” para a propriedade do texto.
4.      Nota: nós devemos colocar uma barra do progresso no segundo painel!
5.      Fechar o editor dos painéis
Para indicar uma barra do progresso dentro de um do painel da barra do progresso, nós necessitamos primeiramente um TProgressBar. Deixar cair um no formulário, deixar o nome do defeito (ProgressBar1).
 
É aqui o que necessita ser feito para que ProgressBar seja indicado dentro de um StatusBar:
1.      Atribuir StatusBar1 para a propriedade do pai do ProgressBar1. Sugestão: “Pai contra o proprietário”
2.      Mudar a propriedade do estilo painel do segundo do StatusBar ao “psOwnerDraw”. Sugestão: “Proprietário que extrai em Delphi” quando o jogo ao psOwnerDraw, o índice indicado no painel de status for extraído no runtime na lona de barra de status pelo código em um alimentador do evento de OnDrawPanel. O oposto ao “psOwnerDraw”, o valor de defeito do “psText”, assegura a corda contida na propriedade do texto é indicado no painel de status, usando o alinhamento especificado pela propriedade de Alinhamento.
3.      Segurar o evento de OnDrawPanel do StatusBar adicionando o código que alinha a barra do progresso em um painel de uma barra de status.
Está aqui o código cheio:
As primeiras duas etapas na discussão acima são executadas no alimentador do evento de OnCreate do formulário.
procedimento TForm1.FormCreate (remetente: TObject); var ProgressBarStyle: inteiro; começar costume do painel da barra de status de //enable o 2o que extrai StatusBar1.Panels [1]. Estilo: = psOwnerDraw; //place a barra do progresso na barra de status ProgressBar1.Parent: = StatusBar1; beira ProgressBarStyle da barra do progresso de //remove: = GetWindowLong (ProgressBar1.Handle, GWL_EXSTYLE); ProgressBarStyle: = ProgressBarStyle - WS_EX_STATICEDGE; SetWindowLong (ProgressBar1.Handle, GWL_EXSTYLE, ProgressBarStyle); extremidade;
Nota: o controle de TProgressBar tem uma beira do defeito que olhe “feia” quando o componente é colocado na barra de status - assim que nós decidimo-nos remover a beira.
Finalmente, segurar o evento de OnDrawPanel do StatusBar1:
procedimento TForm1.StatusBar1DrawPanel (StatusBar: TStatusBar; Painel: TStatusPanel; const Rect: TRect); começar se o painel = StatusBar.Panels [1] então com ProgressBar1 começarem o alto: = Rect.Top; Esquerda: = Rect.Left; Largura: = Rect.Right - Rect.Left - 15; Altura: = Rect.Bottom - Rect.Top; extremidade; extremidade;
Ajustado toda. Funcionar o projeto… com algum código dummy no alimentador do evento de OnClick de uma tecla:
procedimento TForm1.Button1Click (remetente: TObject); var i: inteiro; começar ProgressBar1.Position: = 0; ProgressBar1.Max: = 100; para i: = 0 a 100 começam ProgressBar1.Position: = i; Sono (25); //Application.ProcessMessages; extremidade; extremidade;
 
Barra do progresso em um ListView?!
É aqui como adicionar uma barra do progresso a um controle de ListView. Positivo: código de fonte cheio ao componente de TListViewEx (descendente de TListView) com eventos de ColumnResize!
Barra do progresso em uma caixa de mensagem?!
Vamos dizer que você tem uma caixa de diálogo padrão de Windows indicar uma pergunta ao usuário com “sim” e “não” teclas. Não seria grande se uma barra do progresso poderia ser indicada dentro de uma caixa de diálogo “que conta” segundos até que a caixa de diálogo se feche automaticamente?
É aqui como colocar uma barra do progresso dentro de uma caixa de diálogo padrão!
TAnyOtherControl em StatusBar?
Sim, você pode adicionar todo o controle que você gostar a uma barra de status… segue apenas as etapas você executou com a barra dos progres!

Publicidade

Vote na dica




Quantidade de votos: 1 voto
Aceitação: 20%


Detalhes da dica

Categoria: Windows
Adicionada dia: 17/09/06
Por: Danilo Denis Dos Santo Belforte
Visualizada: 4087 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009