Hot Spots no Visual Basic

Que tal transformar uma picture box do VB em um Hot Spot ? HOT SPOTS ???

Um Hot Spot nada mais é do que uma figura que possui regiões com eventos distintos para o clique. São também chamadas de áreas quentes ou hipergráficos.

O recurso é simples : basta criar dentro da picture box um vetor - array - de labels transparentes. Cada elemento do vetor terá um clique diferente.

Vamos ao roteiro passo a passo:

1. Inicie um novo projeto no Visual Basic - o Form1 é criado automaticamente.De a ele o nome de frmprinc.
2. Adicione ao Form1 uma picture box com um arquivo bitmap(BMP) ou metafile(WMF) de sua preferência. Vamos usar o arquivo COMPUTER.WMF do diretório VB\METAFILE\BUSINESS. De o nome a picture de PI_Princ.(Veja Figura).
3. Adicione um label sobre PI_Princ com as seguintes propriedades:

> > BackStile = 0 'Transparent
> > BorderStyle = 1 'Fixe Single
> > Caption = 'Deixe em branco
> > Name = LB_Rg

4. Crie um vetor com o controle LB_Rg com quatro índices.
5. Coloque uma label sobre o teclado, outra sobre o video, outra sobre o mouse e outra sobre a cpu.
6. Crie uma label na base do formulário frmprinc com o nome de lab_qual e na sua propriedade Caption informe: SISTEMA TESTE.
7. Crie uma label no topo do formulário frmprinc com o nome de lab_nome e na sua propriedade Caption inform: Clique em uma área para ver o nome do componente.
8. Adice o código seguinte à label LB_Rg:

> Sub LB_Rg_Click (Index as Integer)

> > Dim qual as String
> > Select Case Index

> > > Case 0

> > > > qual = "Teclado"

> > > Case 1

> > > > qual = "Vídeo"

> > > Case 2

> > > > qual = "CPU"

> > > Case 3

> > > > qual = "Mouse"

> > > End Select

> > lab_qual.Caption = " " + qual + " "

> End Sub

9. Adicione o seguinte código à picture PI_Princ:

> Sub PI_Princ_Click( )

> > LB_status.Caption= " "

> End Sub

10. Deixe a borda dos labels visíveis em tempo de desenho ocultando-as somente em tempo de execução. Fazemos isso quando o formulário é carregado:

> Sub Form_Load
> Dim i as String
> For i=0 to 3

> > LB_Rg(i).BorderStyle = 0 'none

> next i
> End Sub

Pronto acabamos.

Agora salve e teste o seu programa. Há inumeras aplicações para esta técnica ,basta você usar a imaginação.

Dica: Para trabalhar com áreas irregulares combine várias labels até conseguir a área desejada. Lembre-se que a instrução Select Case pode conter cláusulas como : Case 1 to 4,7,10 isto nos dá mais flexibilidade.

Ah! se quiser pode usar outros eventos associados à label; que tal MouseMove ?

Fonte:Revista Fórum Access

Retorna