Newsgroup: it.comp.appl.access
Titolo: Imporre anteprima immagini nella cartella di XP

Ancora ciao a tutti,
con la procedura solita apro una cartella da cui intendo attingere per
salvare un'immagine nel mio DB (salvare il link).
Ogni volta devo imporre da SO la visualizzazione delle anteprime (ci
sono molte immagini e devo sceglierle).
C'è un sistema per imporre da dentro access di visualizzare sempre
l'antprima della cartella da cui intendo scegliere le immagini?


Certo, dacci il codice che usi e ti segnalo dove correggere
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 Certo, dacci il codice che usi e ti segnalo dove correggere
Devo arguire che non lo conosci. E che se non lo conosci significa che
probabilmente non c'è?
Immaginavo che qualche chiamata API fosse quello che ci voleva.

 Immaginavo che qualche chiamata API fosse quello che ci voleva.
ma tu ce l'hai il codice o no?



Io il codice non ce l'ho, ahimè.
Ed uso il sistema "classico", tramite le normali funzioni di windows
(macchinosissimo).
Sarebbe invece ottimo ottenere l'effetto anteprima immediatamente, non
appena da codice si apre la cartella con le immagini.
Che dici, si può fare?

 wrote in message
news:1134579906.1...@z14g2000cwz.googlegroups.com

Se per visualizzare Anteprime intendi aprire il FileDialog con
l'anteprima(Image preview) ci sono almeno 2 modi, uno dei quali
utilizza il CallBack per caricare l'immagine.
Il primo metodo si appoggia alle API GetOpenFileName della Libreria
comdlg32.dll:
Il Callback va passato alla struttura OPENFILENAME e precisamente
a lpfnHook, ma poi la gestione è abbastanza gravosa, si tratta
di caricare in ClipBoard l'immagine ed inviarla alla RichText
presente nel Dialog.
Oppure se usi
Private Declare Function accOfficeGetFileName _
 Lib "msaccess.exe" Alias "#56" _
 (gfni As accOfficeGetFileNameInfo, fOpen As Integer) As Long
Ti basta passare il Flag lngView alla struttura OfficeGetFileNameInfo
a Zero se non ricordo male(al massimo è 1).
Ora non sono certo di aver capito bene, e non sono certo di averti
aiutato.
Facci sapere.
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Ah allora non ce l'hai... ma non s'era capito, convienine...
Allora metti sulla form un pulsante o un'etichetta e associa questo codice
Private Sub btnAddImage_Click()
   Dim NomeFile As Variant
    Dim lngFlags As Long
    Dim gfni As accOfficeGetFileNameInfo
    Dim OutText As String
    On Error GoTo HandleErrors
    lngFlags = lngFlags Or bacGfniAllowMultiSelect
    lngFlags = lngFlags Or bacGfniInitializeView
    With gfni
        .lngView = 1
        .lngFlags = lngFlags
        .strFilter = ""
        .strFile = ""
        .strDlgTitle = "Inserisci Foto (Anche più di una foto)"
        .strOpenTitle = ""
        .strInitialDir = "C:\"
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Qui decidi da quale cartella iniziare
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        .hwndOwner = Application.hWndAccessApp
    End With
    If OfficeGetFileName(gfni, -1) = 0 Then
        result = Trim(gfni.strFile)
        Debug.Print result
        result = Split(CStr(result), Chr$(9))  ' Chr(9))
        If IsArray(result) Then
       ' DoCmd.RunCommand acCmdSaveRecord
            For Each NomeFile In result
                Call AddFoto(CStr(NomeFile), Me.Id)
            Next
       End If
    End If
ed in un modulo a parte questo
' From Access 2000 Developer's Handbook, Volume I
' by Getz, Litwin, and Gilbert. (Sybex)
' Copyright 1999. All rights reserved.
Private Declare Function accOfficeGetFileName _
 Lib "msaccess.exe" Alias "#56" _
 (gfni As accOfficeGetFileNameInfo, fOpen As Integer) As Long
' Common Dialogs
' OfficeGetFileName errors
Public Const bacAccErrGFNSuccess = 0
Public Const bacAccErrGFNCantOpenDialog = -301
Public Const bacAccErrGFNUserCancelledDialog = -302
' OfficeGetFileName flags
Public Const bacGfniConfirmReplace = &H1              ' Prompt if
overwriting a file?
Public Const bacGfniNoChangeDir = &H2                 ' Don't change to the
directory the user selected?
Public Const bacGfniAllowMultiSelect = &H8            ' Allow
multiple-selection?
Public Const bacGfniDirectoryOnly = &H20              ' Open as directory
picker?
Public Const bacGfniInitializeView = &H40             ' Initialize the view
to the lView member or use last selected view?
' Views in the Office Find File dialog
Public Const bacGfniViewDetails = 0                  ' Details
Public Const bacGfniViewPreview = 1                  ' Preview
Public Const bacGfniViewProperties = 2               ' Properties
Public Const bacGfniViewList = 3                     ' List (typical)
'xxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Qui scegli la modalità di apertura, 1 è quella con anteprima
'xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Public Type accOfficeGetFileNameInfo
    hwndOwner As Long
    strAppName As String * 255
    strDlgTitle As String * 255
    strOpenTitle As String * 255
    strFile As String * 4096
    strInitialDir As String * 255
    strFilter As String * 255
    lngFilterIndex As Long
    lngView As Long
    lngFlags As Long
End Type
Public Function OfficeGetFileName( _
 gfni As accOfficeGetFileNameInfo, _
 ByVal fOpen As Integer) As Long
    ' Use the Office file selector common dialog
    ' exposed by Access.
    ' From Access 2000 Developer's Handbook, Volume I
    ' by Getz, Litwin, and Gilbert. (Sybex)
    ' Copyright 1999. All rights reserved.
    Dim lngReturn As Long
    With gfni
        .strAppName = RTrim$(.strAppName) & vbNullChar
        .strDlgTitle = RTrim$(.strDlgTitle) & vbNullChar
        .strOpenTitle = RTrim$(.strOpenTitle) & vbNullChar
        .strFile = RTrim$(.strFile) & vbNullChar
        .strInitialDir = RTrim$(.strInitialDir) & vbNullChar
        If Len(TrimNull(RTrim$(.strFilter))) = 0 Then
            .strFilter = "Tutti formati Immagini
(*.bmp;*.jpg;*.jpeg;*.gif;*.tiff;*.png;*.wmf;*.emf;*.cur;*.ico)" & _
                         "|Immagini BMP (*.bmp)" & _
                         "|Immagini JPG (*.jpg)" & _
                         "|Immagini JPEG (*.jpeg)" & _
                         "|Immagini PNG (*.png)" & _
                         "|Immagini GIF (*.gif)" & _
                         "|Immagini TIFF (*.tiff)" & _
                         "|Immagini WMF (*.wmf)" & _
                         "|Immagini EMF (*.emf)" & _
                         "|Immagini ICO (*.ico)" & _
                         "|Immagini CUR (*.cur)"
            .lngFilterIndex = 0
        End If
        .strFilter = RTrim$(.strFilter) & vbNullChar
        lngReturn = accOfficeGetFileName(gfni, fOpen)
        .strAppName = TrimNull(.strAppName)
        .strDlgTitle = TrimNull(.strDlgTitle)
        .strOpenTitle = TrimNull(.strOpenTitle)
        .strFile = TrimNull(.strFile)
        .strInitialDir = TrimNull(.strInitialDir)
        .strFilter = TrimNull(.strFilter)
    End With
    OfficeGetFileName = lngReturn
End Function
Public Function TrimNull(strVal As String) As String
    ' From Access 2000 Developer's Handbook, Volume I
    ' by Getz, Litwin, and Gilbert. (Sybex)
    ' Copyright 1999. All rights reserved.
    ' Trim the end of a string, stopping at the first
    ' null character.
    Dim intPos As Integer
    intPos = InStr(1, strVal, vbNullChar)
    Select Case intPos
        Case Is > 1
            TrimNull = Left$(strVal, intPos - 1)
        Case 0
            TrimNull = strVal
        Case 1
            TrimNull = vbNullString
    End Select
End Function
ExitHere:
    Exit Sub
HandleErrors:
    MsgBox "Error: " & Err.Description & " (" & Err.Number & ")"
    Resume ExitHere
End Sub


 ha scritto nel messaggio 
news:dnr8ao$l9e$1...@area.cu.mi.it...

ciao,
aggiungo un'altra richiesta
è possibile visualizzare i file nascosti anche se nelle impostazioni di 
windows sono nascosti?
grazie mille