SOBRE O AUTOR

NAVEGAÇÃO

FINANÇAS

SETOR ELÉTRICO

INFORMÁTICA

MISCELÂNEA

Clique aqui para ver meus bookmarks
 
INFORMÁTICA
Visual Basic
Introdução
Iniciando
Controles
Menus
Arquivos
Programação
Gráficos
Erros
Bancos de Dados
Dicas & Truques
Funções, Comandos
Eventos do VB
Downloads
InfoLinks
Delphi
 
SOBRE O AUTOR
Curriculum Vitae
Estante de Livros
Publicações
Painel ICQ
 
NAVEGAÇÃO
Página Inicial
Mapa do Site
Novidades
Busca no Site
Comentários
Livro de Visitas
 
FINANÇAS
As 500 mais - BR
Análise de Projetos
Contabilidade
Cotações Brasil
Cotações EUA
Estratégia
Gráficos Online
Glossário Financeiro
StockLinks
 
SETOR ELÉTRICO
EletroLinks
Papers
Privatização
 
MISCELÂNEA
Cinema
Curitiba
Humor
Links Amigos
Star Trek
 

Enviar e-mail Alvaro


WallStreet Dividend Award




©1998/1999
Alvaro A. de Almeida

 


  CAPÍTULO 6
USANDO CONTROLES GRÁFICOS
-PARTE A


Capítulo 5 - Parte B 1 2 3 4 5 6a 6b 6c 7 8 9 10 11 12 Capítulo 6 - Parte B

Controles gráficos são criados a partir da Caixa de Ferramentas e são visíveis em tempo de projeto e de execução (desde que a propriedade visible seja verdadeira). Existem dois controles deste tipo: Line, usado para desenhar linhas retas, e Shape, usado para desenhar quadrados, retângulos e círculos.

  As propriedades principais de uma linha desenhada com Line são as coordenadas dos dois extremos: X1, Y1, X2 e Y2. Objetos criados com shape têm as propriedades Left, Width, Top e Height.
 

O método Move, visto anteriormente, só se aplica a objetos criados com a caixa de ferramentas.
 

Exemplo: O código abaixo move uma linha aleatoriamente pela tela, variando as propriedades X1, Y1, X2 e Y2.

   

  Figura 18 - Uma linha saltitante

    Private Sub Timer1_Timer
        With linLinha
            .X1 = Rnd*ScaleWidth
            .Y1 = Rnd*ScaleHeight
            .X2 = Rnd*ScaleWidth
            .Y2 = Rnd*ScaleHeight
        End With
    End Sub

 
A função Rnd retorna números aleatórios entre zero e um. Para gerar números aleatórios entre 0 e a máxima coordenada, multiplicamos Rnd pela largura da tela ou altura, conforme a coordenada seja X ou Y, respectivamente.


USANDO EVENTOS DE MOUSE

 
Existem três eventos de mouse que podem ser capturados para realizar ações:   

  • MouseDown: Ocorre quando o mouse é pressionado sobre um objeto;
  • MouseUp: Ocorre quando o mouse é liberado sobre um objeto;
  • MouseMove: Ocorre quando o mouse se move sobre um objeto.

Todos estes eventos passam quatro parâmetros para as respectivos procedimentos de eventos: Button, Shift, X e Y. Button representa o botão que foi pressionado (1 para o botão esquerdo, 2 para o botão direito e 4 para o do meio, se houver). Shift representa o estado das teclas Shift, Ctrl e Alt durante o evento, de acordo com a tabela abaixo.

  Tabela 17  

Shift Descrição
1 Shift pressionada
2 Ctrl pressionada
4 Alt pressionada

 

Os parâmetro Button e Shift também admite combinações. Por exemplo, Shift = 3 siginifica as teclas Shift e Ctrl pressionadas.
 

Finalmente, X e Y representam as coordenadas do mouse durante o evento.


USANDO MÉTODOS GRÁFICOS

 
Os controles desenhados a partir da Caixa de Ferramentas nem sempre se prestam aos objetivos de um programa gráfico. Por exemplo, para desenhar pontos ou um grande número de linhas devemos usar métodos gráficos e não controles. Métodos são muito mais versáteis e rápidos e não precisam estar presentes em tempo de projeto.

 
Para desenhar pontos em um objeto gráfico (formulário, caixa de figuras ou controle de imagens) use o método PSet, cuja sintaxe é a seguinte:

  [Objeto.] PSet (X, Y) [,Cor],

 

onde X e Y são as coordenadas do objeto onde o ponto deve ser desenhado. O parâmetro "Cor" é opcional. Se não for especificado, o ponto será desenhado usando-se a ForeColor do objeto. Da mesma forma, o tamanho do ponto pode ser definido pela propriedade DrawWidth do objeto.
 

Para desenhar linhas retas, use o método Line,

  [Objeto.] Line [(X1, Y1)] - (X2, Y2) [,Cor],

 

onde a linha será desenhada das coordenadas X1 e Y1 até X2 e Y2. Observe que X1 e Y1 são opcionais. Se forem omitidas, o método Line desenhará uma linha da posição gráfica atual até (X2, Y2). A posição gráfica atual pode ser obtida por meio das propriedades CurrntX e CurrentY dos objetos gráficos. As mesmas observações feitas sobre cores e espessuras de pontos aplicam-se a linhas. Adicionalmente, a propriedade DrawStyle do objeto gráfico permite determinar o estilo da linha (cheia, tracejada, etc).

 
Para desenhar retângulos, preenchidos ou não, use o método Line com o parâmetro B (de Box),

  [Objeto.] Line [(X1, Y1)] - (X2, Y2) [,Cor], B.

 
A propriedade FillStyle do objeto gráfico no qual o retângulo estiver sendo desenhado permitirá preencher o mesmo com um determinado padrão, que pode ser sólido, tracejado, etc. A propriedade FillColor determinará a cor do preenchimento.

 
Para desenhar círculos, elipses ou arcos de círculos, use o método Circle,

  [Objeto.] Circle (X, Y), Raio, [Cor], [Início], [Fim], [Aspecto],

 

onde X e Y são as coordenadas do centro do círculo. Início e Fim são ângulos opcionais, expressos em radianos que representam a abertura de arcos de circunferência (quando for o caso). Aspecto mede a relação de aspecto de uma elipse. Para círculos perfeitos, Aspecto=1. Note-se que as vírgulas não são opcionais.


CARREGANDO E SALVANDO FIGURAS

 

No Visual Basic, somente figuras desenhadas com AutoRedraw = true podem ser salvas. Além disso, a propriedade LinkMode for formulário que contém a figura a ser salva deve estar em "Source".
 

Para carregar figuras em um objeto, use as duas linhas a seguir, que especificam a função LoadPicture,
 

Picture = LoadPicture (Nome_do_Arquivo)
[Objeto.]Picure = LoadPicture (Nome_do_Arquivo).

 

A sintaxe pode parecer estranha, mas é assim mesmo. O arquivo pode ser do tipo Bitmap (*.bmp), Windows MetaFile (*.wmf) ou Device Independent Bitmap (*.dib).

 
Para salvar imagens gráficas, use o comando SavePicture,
 
 
SavePicture [Objeto.Picture, Nome_do_Arquivo.


UM EDITOR DE FIGURAS

 

Nosso recém-adquiridos conhecimentos sobre variáveis e métodos gráficos podem ser usados para implementar um editor de figuras, com capacidade para editar, gravar e abrir arquivos do tipo .BMP. Vamos aproveitar a oportunidade para implementar também um controle do tipo "Barra de Ferramentas", usando os controles ToolBar e ImageList.

 

ToolBar: Este controle é usado para mostrar botões que correspondem a itens do menu do aplicativo, provendo uma interface gráfica para os comandos mais usuais. Cada botão pode ter uma imagem associada, proveniente de uma ImageList. Para iniciar uma barra de ferramentas você deve antes disponibilizar os controles "Microsoft Windows Common Controls" (comctl32.ocx) na caixa de ferramentas. Depois, posicione o controle em um formulário e, clicando com o botão direito do mouse, escolha a opção "properties". Nesta janela, escolha a opção "Buttons" para inserir tantos botões quantos forem necessários. Note que estes botões podem ser de vários tipos:
 

  • tbrDefault:este botão não permanece acionado após o clique, sendo o botão utilizado para opções de salvar ou abrir arquivo, por exemplo;
  • tbrCheck:este botão permanece acionado após o clique independente do estado dos outros botões da barra;
  • tbrButtonGroup:use esta opção para implementar botões de opção do tipo "botões de rádio", onde apenas um dos botões do grupo que tem a propriedade tbrButtonGroup pode permanecer acionado;
  • tbrSeparator:este não é propriamente um botão, mas sim um separador com largura de oito pixels, usado geralmente para separar grupos de botões com diferentes funções;
  • tbrPlaceHolder:este botão é igual ao separador, mas tem largura ajustável.

Você deve, também, modificar a propriedade "Key" de cada um dos botões. Esta propriedade é um string que descreve a função do botão (por exemplo, "salvar", "imprimir", etc). Isto é necessário porque o evento padrão dos botões, "ButtonClick", passa o parâmetro Key do botão que foi clicado. Você pode usar este parâmetro e o comando Select ... Case para atribuir um código a cada um dos botões. Não é interesante usar índices aqui, pois o usuário pode reconfigurar a barra de ferramentas em tempo de execução, mudando os índices.

 
Você também pode atribuir imagens aos botões, mas, antes disso, será necessário inserir um controle ImageList que conterá tais imagens, conforme visto a seguir.
 

 

ImageList:
Este controle é simplesmente um depósito de imagens .BMP ou .ICO Comece posicionando este objeto no formulário, clicando o botão direito do mouse e escolhendo a opção "properties". As imagens podem ser inseridas escolhendo-se a opção "Images". Note que o índice das imagens é incrementado automaticamente a medida que estas vão sendo inseridas.

 
Volte, agora, para as propriedades da barra de ferramentas. Na opção "General", associe a ImageList à barra de ferramentas. A seguir, use a opção "Buttons" para associar uma imagem da ImageList a cada um dos botões.
 

Você também pode configurar a propriedade "Align" da barra de ferramentas para obter uma barra de ferramentas vertical ou alinhada na parte de baixo do formulário.

 

O Applications Wizard do VB 5.0 pode ser usado para produzir "esqueletos" de aplicativos que contém barras de ferramentas prontas para serem usadas, juntamente com a ImageList e todas as imagens adequadas. Para usar este assistente, clique sobre o menu File|New Project, escolha a opção VB Applications Wizard e siga as instruções. Os botões da barra de ferramentas que é formada correspondem aos comandos de um editor de textos simples e podem ser configuradas conforme a necessidade do usuário.

 
Para iniciar o Editor de Figuras, insira um novo projeto e posicione os seguintes objetos sobre o formulário:
  
 

  • duas Caixas de Figuras (Picture Box);
  • duas Barras de Ferramentas;
  • duas Listas de Imagens;
  • um Common Dialog;
  • um painel;
  • uma barra de paginação vertical;
  • uma barra de paginação horizontal.

   Configure as propriedades deste controles conforme a tabela 18 a seguir:

  Tabela 18 - Definições das propriedades  
 

Controle Propriedade Definição
Formulário Name frmPaint
  LinkMode Source
  ScaleMode Pixel
  WindwoState Maximized
Barra de Ferramentas Name tblVert
  Top 420
  Left 0
  Width 750
  Height 4380
  ImageList imlVert
Barra de Ferramentas Name tblHoriz
  Top 0
  Left 0
  Width 4830
  Height 420
  ImageList imlHoriz
Lista de Imagens Name imlVert
Lista de Imagens Name imlHoriz
Caixa de Figuras Name picPaint
  Height 3975
  Left 300
  Top 240
  Width 6975
  ScaleMode Pixel
Painel Name panColor
  Height 495
  Left 0
  Top 5700
  Width 9585
Barra de Paginação Horizontal Name hsbHoriz
  Height 4935
  LargeChange 600
  Left 9300
  Max 10000
  Min 1
  SmallChange 60
Barra de Paginação Vertical Name vsbVert
  Height 255
  LargeChange 500
  Left 780
  Max 15000
  Min 1
  SmallChange 50

 

  *


Copyright © 1998/1999 - Desenvolvido por Alvaro Augusto de Almeida (isso significa que você pode manter cópias para uso particular, mas não para divulgação). Dúvidas e sugestões serão bem vindas.   

     
Vai para a página inicial

Acessos desde 30.01.99: 

Enviar e-mail para Alvaro