Newsgroup: it.comp.appl.access
Titolo: altezza finestra dimensionabile via codice

si possono forzare le dimensioni della finestra (della maschera, ad esempio) in
altezza?
quindi settare un valore via codice?
grazie
Ciao
Silvia.
 --
www.silvietta.it
...everyone's invited!
Non Esiste Una Razza Bianca, Benche' Se Ne Parli Tanto: Ogni Uomo Bianco E' Solamente Un Uomo Scolorito 

 Non Esiste Una Razza Bianca, Benche' Se Ne Parli Tanto: Ogni Uomo Bianco E'
Solamente Un Uomo Scolorito
Se non sbaglio la proprietą "Height" si applica solo alle sezioni di una
maschera o report, mentre la "Width" alla maschera o report e non alle
sezioni.
--
rgrds
SC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

sezioni.
quindi la finestra non si potrebbe dimensionare in altezza??
Ciao
Silvia.
 --
www.silvietta.it


 Silvia.
Che io sappia solo il corpo della maschera in altezza.


Che io sappia solo il corpo della maschera in altezza.
allora non mi resta che sperare che qualcuno ti contraddica! ;-)



Prova con il metodo MoveSize (vedi help).
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Prova con il metodo MoveSize (vedi help).
giиа provato: sposta la finestra, non la dimensiona :-(



Ti rammento che i parametri di MoveSize sono espressi in twips, che devi
impostare a no la proprietа Dimensioni automatiche e se non ricordo male non
funziona con le maschere popup.


 Silvia.
La speranza è sempre l'ultima .....Me lo auguro per te! 


 funziona con le maschere popup.
Scusate se mi intrometto nella discussione :o)
premesso che io uso A2000:
1) Dovrebbe funzionare anche con le popup
2) Il codice dovrebbe essere
    DoCmd.MoveSize ,,,Altezza
Dove Altezza equivale all'altezza in twip, come ha detto Roberto
Ciaoooooooo 
-- 
Dario
--
Il bello della vita è vivere:
molti esistono, ecco tutto.


funziona con le maschere popup.
non so perchè con l'espressione: 
movesize ,,,850 (ad esempio)
mi va SEMPRE  in crash access.
forse non può essere impostato in una SM?
e ad ogni modo, come posso impostarlo sulla maschera principale dalla SM?
grazie


 Silvia.


 quindi settare un valore via codice?
 In AccessXP e 2000 e' possibile farlo senza ricorrere
alle funzioni API del sistema operativo.
 Basta impostare la proprieta seguente
 Forms("NomeMaschera").Properties("WindowHeight").Value
 In Access97 no
 Pero' mi trovo meglio con il codice seguente per ridimensionare
 una maschera. La maschera deve essere popup, bordo sottile.
 Il codice seguente l'ho tratto da un applicazione, e non ho
avuto voglia di modificarlo per adattarlo solo alla tua richiesta.
 In pratica serve ad aumentare l'altezza della maschera in modo
che possa contenere tutti i controlli che al suo interno vengono
spostati in basso. La variabile NCampi e' il numero di controlli
casella di testo che ci sono dentro la maschera.
 Il ridimensionamento ha inizio dall'evento Form_Open
 SetWindowPos e' la funzione chiave.
Option Compare Database
Option Explicit
' SetWindowPos Flags
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOREDRAW = &H8
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_FRAMECHANGED = &H20        '  The frame changed: send
WM_NCCALCSIZE
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_NOCOPYBITS = &H100
Private Const SWP_NOOWNERZORDER = &H200      '  Don't do owner Z ordering
' Costanti per GetSystemMetrics
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const SM_CXVSCROLL = 2
Private Const SM_CYHSCROLL = 3
Private Const SM_CXBORDER = 5
Private Const SM_CYBORDER = 6
' SetWindowPos() hWndInsertAfter values
Private Const HWND_TOP = 0
Private Const HWND_BOTTOM = 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const TITLE = ""
'  Device Parameters for GetDeviceCaps()
Private Const LOGPIXELSX = 88        '  Logical pixels/inch in X
Private Const LOGPIXELSY = 90        '  Logical pixels/inch in Y
Private Const BITSPIXEL = 12         '  Number of bits per pixel
' Twips per inch
Private Const TWIPSPERINCH = 1440&
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hDC As Long) As Long
Private Declare Function apiGetDeviceCaps Lib "gdi32" _
Alias "GetDeviceCaps" (ByVal hDC As Long, ByVal nIndex As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
As Long
Private Sub Form_KeyPress(KeyAscii As Integer)
On Error GoTo Errore
 If KeyAscii = vbKeySpace Then  ' Registrazione della scheda
   DoCmd.GoToControl "MSCComando"
   GestioneSchedaInArchivio
 End If
 If KeyAscii = vbKeyEscape Then
   ChiudiMaschera
 End If
Uscita:
       Exit Sub
Errore:
       GErrori Err.Number, Err.description, Err.Source, "Private Sub
Form_KeyPress()"
End Sub
Private Sub Form_Load()
   Me.X1.SetFocus
End Sub
Private Sub Form_Open(Cancel As Integer)
On Error GoTo Errore
 DoCmd.Restore
 Dim m_ScreenWidth As Long, m_ScreenHeight As Long
 Dim lngDC As Long
 Dim m_ScreenXdpi As Long
 Dim m_ScreenYdpi As Long
 Dim DistanzaControlli As Long
 Dim MaggiorazioneAltezza As Long
 Dim DistanzaTop As Long
 Dim MargineSinistro As Long
 Dim rst As DAO.Recordset
If NCampi > 2 Then ' Ridimensionamento se il numero delle tipologie postali
e' maggiore di 2
' ****** LETTURA PARAMETRI SCHERMO E RISOLUZIONE
 m_ScreenWidth = GetSystemMetrics(SM_CXSCREEN)  ' Dimensioni schermo - in
pixel - Es: 1024 * 768
 m_ScreenHeight = GetSystemMetrics(SM_CYSCREEN)
' Grab any DC
 lngDC = GetDC(0)
' Horizontal
    m_ScreenXdpi = apiGetDeviceCaps(lngDC, LOGPIXELSX)
' Vertical
    m_ScreenYdpi = apiGetDeviceCaps(lngDC, LOGPIXELSY)
 lngDC = ReleaseDC(0, lngDC)
' ****** FINE LETTURA PARAMETRI SCHERMO E RISOLUZIONE
' Per calcolare la distanza tra i controlli
 DistanzaControlli = Me.X2.Top - Me.X1.Top
' Calcolo la maggiore dimensione che deve avere la maschera
 MaggiorazioneAltezza = DistanzaControlli * ((NCampi - 2) + 1) ' Altezza
complessiva del set di controlli aggiuntivi
 MargineSinistro = Me.Properties("WindowHeight").Value - (Me.X2.Top +
Me.X2.Height) ' Spazio residuo disponibile
 If MaggiorazioneAltezza < MargineSinistro Then
    MaggiorazioneAltezza = 0
 Else
    MaggiorazioneAltezza = MaggiorazioneAltezza - MargineSinistro + 60
 End If
 ' Distanza della maschera dal bordo sinistro dello schermo
 MargineSinistro = (m_ScreenWidth - Me.Properties("WindowWidth").Value /
(TWIPSPERINCH / m_ScreenXdpi)) / 2
 MaggiorazioneAltezza = (MaggiorazioneAltezza +
Me.Properties("WindowHeight").Value) / (TWIPSPERINCH / m_ScreenYdpi)
' Calcolo della distanza dall'alto dello schermo
 If MaggiorazioneAltezza > m_ScreenHeight Then
    DistanzaTop = 0
 Else
    DistanzaTop = (m_ScreenHeight - MaggiorazioneAltezza) / 4
 End If
 ' Descrittore della windows - HWND_TOPMOST = Coordinate assolute rispetto
allo schermo - Posizione dal margine sinistro - Posizione dalla cima -
Dimensione orizzontale - Dimensione verticale
 Call SetWindowPos(Me.hwnd, HWND_TOPMOST, MargineSinistro, DistanzaTop,
Me.Properties("WindowWidth").Value / (TWIPSPERINCH / m_ScreenXdpi),
MaggiorazioneAltezza, SWP_NOZORDER)
 Me.Corpo.Height = Me.Corpo.Height + MaggiorazioneAltezza * (TWIPSPERINCH /
m_ScreenYdpi)
   For lngDC = 3 To NCampi
        Me.Controls("X" & lngDC).Visible = True
        Me.Controls("TX" & lngDC).Visible = True
          If ICmc = 2 Then ' In cancellazione
              Me.Controls("EX" & lngDC).Visible = False
          Else
              Me.Controls("EX" & lngDC).Visible = True
          End If
        Me.Controls("X" & lngDC).Top = Me.Controls("X" & CStr((lngDC -
1))).Top + DistanzaControlli
        Me.Controls("TX" & lngDC).Top = Me.Controls("TX" & CStr((lngDC -
1))).Top + DistanzaControlli
        Me.Controls("EX" & lngDC).Top = Me.Controls("EX" & CStr((lngDC -
1))).Top + DistanzaControlli
   Next lngDC
End If  ' Fine if NCampi
Set rst = CurrentDb.OpenRecordset(NomeTB3, dbOpenSnapshot)
 For lngDC = 1 To NCampi
   Me.Controls("TX" & lngDC).Caption = Nz(rst(1).Value, "Non assegnato")
   If Not (rst.EOF And rst.BOF) Then rst.MoveNext
 Next lngDC
rst.Close
Set rst = Nothing
Uscita:
       Exit Sub
Errore:
       GErrori Err.Number, Err.description, Err.Source, "Private Sub
Form_Open()"
End Sub

sottomaschera della maschera principale e non la sottomaschera.
no, infatti non ha senso farlo sulla sm e infatti non voglio farlo sulla sm.
solo che il comando parte da lě, in quanto conta i record della sottomaschera ed
č a quel punto che dovrei ridimensionare la finestra (quella principale). perň
se il comando lo scrivo nell'evento della sm forse tenta di agire sulla sm (non
so, l'ho buttata lě)


avuto voglia di modificarlo per adattarlo solo alla tua richiesta.
non ti preoccupare, sei già abbastanza gentile.
ora ci dò un'occhiata.


 In Access97 no
come mai non ti piace la funzione?
sembra così semplice e rapida....
ad ogni modo non capisco come funzioni, ho provato con:
   Forms("m_CorsiSvolti").Properties("WindowHeight").Value 860 * TotRecord
   Forms("m_CorsiSvolti").Properties("WindowHeight").Value =860 * TotRecord 'in
questo caso mi da "proprietà di sola lettura: impossibile impostarla"
   Forms("m_CorsiSvolti").Properties("WindowHeight").Value (860 * TotRecord)
nel 1° e 3° caso da un altro errore
