Newsgroup: it.comp.appl.access
Titolo: Ridimensionare Oggetto OLE su Report

Come è possibile ridimensionare l'oggetto "cornice associata" in base al
contenuto dell'oggetto rappresentato (es. immagine)?
Grazie!
Patrick

 ha scritto nel messaggio
news:ci74lk$3t1$1...@lacerta.tiscalinet.it...

Se si tratta di Immagine trovi un esempio sul sito di Lebans,
ma ritengo un pò pericoloso.
Potresti leggere le dimensioni del file Immagine dopo aver impostato a Zoom
la modalità di presentazione queste funzioni restituiscono in Pixel la
dimensione dell'immagine reale:
Ho provato a caricare in un oggetto Immagine Grosso
come un francobollo una BMP da 1024x768
e mi restituisce 1024x768 come mi aspettavo.....!
Ora devi convertire i Pixel in Twips poichè Access
non consente la conversione delle unità di misura...!
Quindi chiamando dopo il caricamento dell'immagine
in questo modo:
Me.Immagine.Width=fPixelsToTwips(Xdim,DIRECTION_HORIZONTAL )
ME.Immagine.Height=fPixelsToTwips(Xdim,DIRECTION_VERTICAL )
'******* INSERIRE NEL REPORT OPPURE DA OTTIMIZZARE
'        Questo esempio non è testato
'        Function XDim(ctlIMG As Access.Image) As Integer
'                fDimensioni = CInt(ctlIMG.ImageWidth / 14.998)
'        End Function
'Queste sono testate...!
Function XDim() As integer
    fDimensioni = Cint(Me.Immagine.ImageWidth / 14.998)
End Function
Function YDim() As integer
    fDimensioni = CInt(Me.Immagine.ImageHeight / 14.998
End Function
'***************************************************
'******** INSERIRE IN UN MODULO
Public Const DIRECTION_VERTICAL = 1
Public Const DIRECTION_HORIZONTAL = 0
Function fPixelsToTwips(lngPixels As Long, lngDirection As Long) As Long
'   Function to convert pixels to twips for the current screen resolution
'   Accepts:
'       lngPixels - the number of pixels to be converted
'       lngDirection - direction (x or y - use either DIRECTION_VERTICAL or
DIRECTION_HORIZONTAL)
'   Returns:
'       the number of twips corresponding to the given pixels
    On Error GoTo E_Handle
    Dim lngDeviceHandle As Long
    Dim lngPixelsPerInch As Long
    lngDeviceHandle = GetDC(0)
    If lngDirection = DIRECTION_HORIZONTAL Then
        lngPixelsPerInch = GetDeviceCaps(lngDeviceHandle, LOGPIXELSX)
    Else
    lngPixelsPerInch = GetDeviceCaps(lngDeviceHandle, LOGPIXELSY)
    End If
    lngDeviceHandle = ReleaseDC(0, lngDeviceHandle)
    fPixelsToTwips = lngPixels * 1440 / lngPixelsPerInch
fExit:
    On Error Resume Next
    Exit Function
E_Handle:
    MsgBox Err.Description, vbOKOnly + vbCritical, "Error: " & Err.Number
    Resume fExit
End Function
Ciao.
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

Purtroppo l'oggetto OLE può contenere sia immagini che fogli Excel/Word.
Ho provato comunque a conoscere la reale grandezza dell'oggetto contenuto
scrivendo
Me.OGGETTO_OLE.Object.Height
Ma Access va in crash (allego errore, il classico di XP).
Grazie comunque per il tempo che mi hai dedicato (a buon rendere!) e se ti
viene in mente qualcos'altro fammi sapere.
Ciao! :-)
De Angelis Patrick

 ha scritto nel messaggio
news:cjbe75$t0e$1...@lacerta.tiscalinet.it...

Come mai devi includere dei File di quel tipo non hai valutato la
possibilità di usare l'Automazione per accedere al file e salvare solo
il percorso fisico....??
Ciao
