tipo Standard EXE ? Ele cria um formulrio ( form1) inicial para sua
aplicao. Embora possamos criar aplicaes Windows sem
formulrios, essa no a regra geral. A grande maioria das aplicaes
Windows utilizam formulrios como base principal.
No VB no diferente , voc geralmente usa um formulrio e nele
inclui labels, caixas de texto , caixas de combinao , frames , etc...
Ento voc deve tratar com carinho os formulrios do seu projeto ,
e , far isto se conhecer pelo menos as propriedades bsicas
relacionadas aos formulrios. Vamos l...
1-Fixed Single - O
formulrio possui
borda , barra de
titulo e o boto
fechar. No pode
ser
redimensionado .
Os botes
Minimizar e
Maximizar podem
ser incluidos
atravs das
propriedades:
MinButton e
MaxButton.
2- Sizable - o
estilo padro . O
formulrio possui
borda, barra de
ttulo, e todos os
botes :
minimizar,
maximizar e
fechar. Pode ser
redimensionado .
Propriedades de um Formulrio
Veremos agora as principais propriedades de um formulrio :
Propriedade
Altera
Name
O nome do formulrio
Caption
BackColor
A cor de fundo
ForeColor
BorderStyle
J estudada acima
MaxButton
MinButton
MDIChild
Moveable
ShowInTaskbar
frmTeste.Show vbModal
Lembre-se :
Quando o mtodo Show exibe um formulrio no modal , o
cdigo subsequente executado .
Quando Show exibe um formulrio modal o cdigo subsequente
no executado at que o formulrio seja descarregado ou
escondido, e nenhuma entrada quer via teclado ou mouse pode
ocorrer exceto nos objetos do formulrio .
Um formulrio MDIForm no pode ser modal.
O formulrio inicial de uma aplicao automaticamente
exibido aps o seu evento Load ser invocado.
Para carregar um formulrio na memria sem exb-lo usamos o
evento Load . Sintaxe:
Private Sub Form_Load( )
Private Sub MDIForm_Load( )
O evento Load usualmente utilizado par incluir o cdigo de
inicializao do formulrio . ( carregar combos , definir variveis
usadas no formulrio ,etc...).
O evento Load ocorre depois do evento Initialize.
Lembre-se:
Quando voc fizer referncia a uma propriedade de um
formulrio no carregado , o mesmo ser automaticamente
carregado , mas no exibido , a no ser que a
propriedade MDIChild estiver definida como True.
Se um objeto MDIForm no estiver carregado e um
formulrio MDI Child for carregado , ambos sero
automaticamente carregados e exibidos.
Lembre-se :
Se Cancel for definido como diferente de zero o formulrio no
ser removido , mas outros eventos no sero
interrompidos. Ex: Sair do Windows.
O evento QueryUnload ocorre antes do evento Unload.
O evento Unload ocorre antes do evento Terminate.
Nota: Voce sabe o que o evento QueryUnload ?
O evento QueryUnload ocorre antes de
um formulrio ou aplicao encerrar.
Quando um objeto MDIForm encerrado
este evento ocorre primeiro para o
formulrio MDI e ento para todos os
formulrios MDI Child. Se o evento
QueryUnload no for cancelado , o
evento Unload ocorre primeiro para
todos os formulrios e ento para o
formulrio MDI. Sua sintaxe :
Private Sub Form_QueryUnload(cancel
As Integer, unloadmode As Integer)
Private
Sub MDIForm_QueryUnload(cancel As
Integer, unloadmode As Integer)
Exibe o formulrio
End Sub
Lembre-se :
Ao usar o mtodo Hide para esconder um formulrio ele no
removido da memria. Se voc usar o mtodo Show novamente
todos os controles do formulrio estaro exibindo os mesmos
valores.
Para remover um formulrio da memria use o mtodo Unload.
Para conservar valores dos controles voc pode salv-los em
variveis que podero ser acessadas novamente quando o
formulrio for carregado novamente.
Usar o comando End no uma boa prtica pois encerra sua
aplicao , e , nem sempre libera a memria usada.
Quando voce descarrega um formulrio usando o
mtodo Unload , os eventos QueryUnload e Unload do
formulrio so disparados. Para cancelar a descarga do
formulrio basta definir Cancel = -1 . Para saber como o
formulrio esta sendo descarregado voc pode checar o valor
de UnloadMode: (Veja abaixo)
Constante
Descrio
vbAppTaskManager
(3)
vbAppWindows (2)
vbFormCode (1)
O formulrio MDI child esta fechando pois o formulrio MDI form esta
sendo fechado.
vbFormOwner (5)
1-
Colees de Formulrios
Uma coleo um agrupamento de itens relacionados. O VB possui a
coleo Forms que composta por todos os formulrios da
aplicao. Atravs da coleo forms podemos rastrear mltiplos
formulrios.
Cada formulrio em nossa aplicao possui uma coleo de controles
embutida , e , voc pode usar a coleo de controles em tempo de
execuo para ter acesso aos controles em um formulrio sem
precisar saber o nome de cada controle ou mesmo o tipo do controle.
Tudo j esta pronto , voc no precisar declarar nada , pois o VB
monta e mantm a coleo enquanto voc desenha o formulrio :
incluindo e/ou excluindo controles do mesmo.
Aonde voc pode usar toda esta teoria ??? Bem , que tal na entrada
de dados usando formulrios !!! Assim voc pode escrever uma rotina
genrica que pesquise a coleo de controles procurando por
controles relacionados com os dados que voc quer usar e alterar
suas propriedades.
Voc pode acessar a coleo de controles atravs da
propriedade Controls de um formulrio. Esta propriedade um vetor
(array) de variveis objeto , onde cada elemento do vetor um
controle; o elemento 0 o primeiro controle , o elemento 1 , o
segundo , e por ai vai...
New Collection
Private Sub
Command1_Clic
k()
Dim NovoForm
As New Form1
Static intnumero
As Integer
intnumero =
intnumero + 1
NovoForm.Captio
n = "Formulrio #
" & intnumero
NovoForm.BackC
olor =
QBColor(intnume
ro)
formularios.Add
NovoForm
NovoForm.Show
End Sub
Dim I as
integer
For I = 0
To
formulario
s.Count
Debug.Pri
nt
Forms(I).C
aption
Next I
For i = 0 To
Forms.Count - 1
If Forms(i).Name =
form_name Then
'se encontramos
retorna o form.
Set ProcuraForm
= Forms(i)
Exit For
End If
Next i
End Function
MDIForm
MDI Child
Os cones
do MDI e
MDI Child
MDIForm
com menu
MDI Child
ativado - o
seu menu
substitui o
do MDIForm
Lembre-se :
UM objeto MDIForm pode conter somente: Menu , PictureBox ,
Toolbar e controles que tiverem a propriedade Align.
Para inserir outros controles neste tipo de formulrio voc deve
inserir um controle picture box e ento inserir neste controle
os demais controles. (...? )
Um formulrio MDIForm no pode ser modal.
Os formulrios MDI Child so independentes do MDIForm , mas
sempre estaro contidos nele.
Podemos acessar uma coleo de controles em um
formulrio MDIForm usando a coleo Controls. Assim para
esconder todos os controles em um formulrio MDIForm ,
fazemos:
For Each
Control in
MDIForm1.Cont
rols
Control.Visible
= False
Next Control
ou msgbox me.text1.text