Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [VB6] Immagini

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327

    [VB]Immagini

    Ciao a tutti, vi espongo il mio problema.
    Ho fatto un programma interfacciato con un database.
    Inserisco un codice prodotto e lui mi fa una query e mi visualizza tutti i dati.
    A questo punto nel db c'è un percorso di un immagine ( Per esempio: Upload\7270.jpg )
    Ho creato un oggetto picture e voglio fare in modo che la picture in base al prodotto legga il percorso che vi è nel database e mi visualizzi la figura.
    Per esempio se il percorso è Upload\7270.jpg la picture deve visualizzarmi la figura in upload\7270.jpg
    Come faccio??
    Grazie in anticipo
    By Games

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Supponendo che la cartella Upload si trova nella stessa cartella del programma, potresti fare una cosa del genere:
    codice:
    Dim PathQuery As String
    Dim AppPath As String
    
    
    PathQuery = "Upload\7270.jpg"
    
    AppPath = App.Path
    If Right$(App.Path, 1&) <> "\" Then AppPath = AppPath & "\"
    
    Picture1.Picture = LoadPicture(AppPath & PathQuery)
    ... e non usare while wend è una sintassi deprecata

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    Potresti spiegarmelo?
    By Games

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Si parla di VB6 o VB.NET?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Originariamente inviato da Games
    Potresti spiegarmelo?
    Si, certo.
    La variabile PathQuery, contiene il tuo percorso prelevato in precedenza dal database (nell'esempio invece è assegnata).
    La variabile AppPath, contiene il percorso dell'applicazione completo di separatore finale indipendentemente dal fatto che si trovi nella root principale o in una sottocartella.
    La funzione LoadPicture carica un'immagine grafica all'interno del controllo Picture1 in base al parametro rappresentato dal percorso del file, cioè AppPath + PathQuery supponendo che la cartella Upload sia una sottocartella del programma.
    ... e non usare while wend è una sintassi deprecata

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    l'ho quasi capito

    mi spieghi questo?

    If Right$(App.Path, 1&) <> "\" Then AppPath = AppPath & "\"

    Grazie ancora, molto gentile
    By Games

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    un'altra cosa, io l'exe c'è l'ho dentro una cartella download, ma l'immagine nn sta della la cartella download ma nella cartella precedente.
    Come faccio a dirgli di andare nella cartella precedente poi in upload??
    Io ho provato così: ..\upload\7270.jgp ma nn funge

    E poi devo dimensionare la picture in base alla grandella della foto?
    So che chiedo troppo, però mi serve e io visual so usarlo solo per il database.

    thanks
    By Games

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Non hai ancora risposto alla mia domanda: si tratta di VB6 oppure di VB.NET?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Originariamente inviato da Games
    mi spieghi questo?

    If Right$(App.Path, 1&) <> "\" Then AppPath = AppPath & "\"
    Sicuro. L'avevo accennato in precedenza:
    La variabile AppPath, contiene il percorso dell'applicazione completo di separatore finale indipendentemente dal fatto che si trovi nella root principale o in una sottocartella.
    Praticamente con la Right ti fai restituire l'ultimo carattere della stringa App.Path, che equivale al percorso da cui è stata lanciata l'applicazione.
    Se il programma si trova in C:\ verrà restituita la stringa "C:\" appunto, se al contrario si trova in una sottocartella verrà restituita una stringa del genere: "C:\Sottocartella", cioè senza separatore finale.
    Siccome nell'esempio serviva il percorso completo del file immagine, che era legato alla cartella d'esecuzione in quanto Upload era una sua sottocartella, bisognava verificare la presenza del separatore "\" per evitare errori.

    Ora passiamo al resto...
    Se ho ben capito la struttura delle cartelle è tipo questa:
    codice:
    C:\NomeProgramma\Download\Programma.exe
    C:\NomeProgramma\Upload\7270.jpg
    Se è così, l'esempio precedente non è più valido ma devi fare qualche modifica:
    codice:
    Dim PathQuery As String
    Dim CartellaPrincipale As String
    
    PathQuery = "Upload\7270.jpg"
    
    If Right$(App.Path, 1&) <> "\" Then
      CartellaPrincipale = Left$(App.Path, InStrRev(App.Path, "\"))
      If Len(Dir$(CartellaPrincipale & PathQuery)) > 0& Then
        Picture1.Picture = LoadPicture(CartellaPrincipale & PathQuery)
      End If
    End If
    In questo caso devi prima ottenere la cartella del programma sempre dal percorso da cui è stato eseguito l'applicativo (nell'esempio precedente "C:\NomeProgramma\"). Ottenuta la cartella ci aggiungi il risultato della query.
    Il primo If serve ad evitare di procedere con il caricamento dell'immagine nel caso in cui il programma sia stato "spostato" ed eseguito dalla root principale (C:\). Ciò sarebbe inutile perchè dietro la root non ci sono altre cartelle
    Il secondo If invece serve a verificare l'esistenza del file (che ad esempio potrebbe essere stato rimosso).

    Se vuoi dimensionare la Picture in base alla grandezza dell'immagine, ti basta impostare la proprietà AutoSize su True.
    Originariamente inviato da Games
    io visual so usarlo solo per il database
    Quello che piacerebbe fare a me...
    ... e non usare while wend è una sintassi deprecata

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    327
    Originariamente inviato da alka
    Non hai ancora risposto alla mia domanda: si tratta di VB6 oppure di VB.NET?
    Vb6

    Adesso mi funziona tutto e ho capito tutto
    Thanks
    By Games

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.