Q: Želim da skaliram formu po visini .
A: Skaliranje forme nije uopste jednostavno. Skaliranje forme podrazumeva da se sve skalira, sama forma i sve kontrole na njoj. Kad se skaliraju kontrole, obicno im se menja i font. I sve zavisi od rezolucije na kojoj je forma sagradjena i rezolucije na racunaru na kome se vrsi skaliranje. Imas o tome ovde:
http://www.mvps.org/access/general/gen0002.htm
Q: I to radi ali objekti koji se skrivaju dole na dnu forme kada skaliram formu na manje ti objekti se pomaknu ka verhu i nemogu da ih sakrijem sem visible=false. Ovo mogu uraditi kroz cod sa Visible = false ali imam puno objekata pa treba puno coda pisati.Pa me interesuje dali ima jednostavnije rješenje.
A: Ako imas puno kontrola koje zelis da u nekom momentu sakrijes ili otkrijes, svakako da je glupo pisati za svaku kontrolu nesto ovako:
if nest then
ctl1.visible = true
else
ctl1.visible = true
end if
i tako za N kontrola.
Kad zelis da nesto uradis za vise kontrola odjednom, onda se koristi Controls collection i Tag property.
Evo ti funkcija (treba da je iskopirads u neki modul) koja radi to sto ti treba:
Code:
Function ToggleVisibleFrm(frm As Form, strTAG As String) As Boolean
'*******************************************
'Name: ToggleVisible (Function)
'Purpose: toggle controsl visibility, for cotrols that have strTAG
' somewhere in their Tag property
'Author: *****
'Date: February 22, 2000, 02:08:19 PM
'Called by:
'Calls:
'Inputs: frm:=form hat contains controls
' strTAG:= code to be found in the Tag property. If found, visibility will be toggled
'Output: nothing
'*******************************************
Dim ctl As Control
For Each ctl In frm.Controls
If InStr(1, ctl.Tag, strTAG) > 0 Then
ctl.Visible = Not ctl.Visible
End If
Next
End Function
Da bi primenio funkciju, treba da u kontrole koje zelis da sakrijes/otkrijes stavis na Tag property neku sifru, recimo 'SO' 'SO' dolazi od (Sakrij/Otkkrij). Onda kad treba da ih skrijes ili otkrijes, uradis ovo u kodu na formi:
Call ToggleVisibleFrm (me,'SO')
Ova funkcija menja visibility, ako su vidljive postace nevidljive i obrnuto.
Prouci princip pa mozes to da primenis za druge srtvari. Mozes da postavis grupu kontrola da budu NULL, ili da postanu zakljucane, ili otkljucane, sta god hoces.
U tag stavis razne kodove, na primer 'HIDE_DISABLE_DISPLAY_SETNULL'. nda mozes da imas funkcije koje nesto rade za kontrole koje u Tag properti imaju rec 'SETNULL' na primer, ili 'HIDE'. Kontrola koja reaguje na funkcije za sakrivanje i otkrivanjeimala bi tag 'HIDE_DISPLAY'. Kontrola koja je slicna , ali treba je i nullovati, moze da ima HIDE_DISPLAY_SETNULL.
Sve ove funkcije mozes da cuvas u modulu koji selis iz aplikacije u aplikaciju i onda ih pozivas kad ti zatrebaju. Kod se ne menja, samo se kontrolama dodeljuju tagovi. Tagovi nisu hard kodirani, mozes na jednoj formi da koristis 'HIDe' a nd drugoj 'SAKRIJ'