Risorse progetto

di il
12 risposte

Risorse progetto

Salve a tutti, ho finito di creare un programma in vb.net e voglio creare un pacchetto di setup, e vedendo su internet ho visto come si fa, il problema è che il mio programma ha una cartella di fotografie che servono durante l'esecuzione del programma stesso, il problema è che se eseguo il programma da debug va tutto alla grande, mentre se creo il setup, installa l'applicazione quando lo eseguo in alcuni tratti(quando deve caricare le foto contenute in quella cartella) mi da un errore nella quale mi dice appunto che non riesce a trovare quei file(le foto in poche parole). Come faccio a risolvere il problema?

12 Risposte

  • Re: Risorse progetto

    Ciao dna_programmer,
    Ti conviene mettere le immagini nelle risorse. Vai nelle propietà del progetto/Resources/Add Resource (oppure ci trascini dentro l' immagine). Poi se imposti una Picture-Box a design-time semplicemente selezioni la risorsa, se invece la assegni da codice scrivi.
    
    PictureBox1.Image = My.Resources.MiaImmagine
    
  • Re: Risorse progetto

    Ciao, allora il problema è il seguente:

    in una cartella ho varie foto che il programma deve caricare in modo random nelle picturebox (quindi una volta carica una foto, poi dopo un'altra a caso ecc); il problema l'avevo risolto usando il metodo getfiles della classe directory e inserivo in un array di stringhe tutte le path delle foto trovate in quella cartella, a questo punto trovavo un numero casuale e lo mettevo al posto dell'indice e lui mi caricava quella foto corrispondente all'indirizzo trovato nella posizione random dell'array. Non so se mi sono spiegato bene.

    Il problema ora come faccio ad associare una risorsa a una cella dell'array di stringhe per poter calcolarle in modo random;
    ho fatto così:

    z(0) = My.Resources.prova

    però mi da questo errore:

    Impossibile convertire il valore di tipo 'System.Drawing.Bitmap' in 'String'.

    In generale non so se mi sono spiegato bene in quello che devo fare e il mio problema , chiedimi se non hai capito qualche passaggio.Grazie ancora
  • Re: Risorse progetto

    Ciao dna_programmer,
    puoi usare un array di Bitmap invece che di stringhe:
    
    Public Class Form1
        Dim images As List(Of Bitmap) = New List(Of Bitmap)
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            images.Add(My.Resources.PrimaImmagine)
            images.Add(My.Resources.SecondaImmagine)
            images.Add(My.Resources.TerzaImmagine)
    
            Dim index As Integer = 0 ' ... Random number
    
            PictureBox1.Image = images(index)
        End Sub
    End Class
    
    Quando crei un array di oggetti, in pratica crei un array di riferimenti a quegli oggetti, gli oggetti non vengono duplicati. Questo è molto efficiente e rapido.
  • Re: Risorse progetto

    Non ho capito bene cos'è list e la of bitmap
  • Re: Risorse progetto

    Un'altra cosa: io dovrei fare un confronto tra le immagini contenute in due picture box, prima usavo il metodo image location che conteneva tranquillamente la path, ora però come faccio, ho provato così:

    picturebox1.image = picturebox2.image

    solo che mi dice che l'operatore = non è definito per questa classe
  • Re: Risorse progetto

    Ok problema risolto con il metodo equals
  • Re: Risorse progetto

    dna_programmer ha scritto:


    Non ho capito bene cos'è list e la of bitmap
    ciao dna_programmer
    nell' antichità si usavano gli array che dimensionavi all' inizio e che poi ti toccava ridimensionare, procuravano un sacco di rogne e riempivano i forum di continue richieste di aiuto.

    Al giorno d' oggi fortunatamante non si usano più!
    (sto facendo lo spiritoso, se vuoi puoi usarli ancora (peggio per te )).

    Al loro posto si usano delle classi che si ridimensionano alla bisogna e che ti danno altre agevolazioni.
    In VisualBasic si dichiarano e si usano nel modo che ti ho indicato, puoi usarli anche con degli interi:
    
        Dim myList As List(Of Integer) = New List(Of Integer)
    
    Sono fortemente consigliati. In pratica la List(Of qualcosa) è una classe che ti appare come un array di qualcosa. Solo che è una classe per cui quando aggiungi un elemento controlla se è il caso di ampliare l' array e tu non te ne devi preoccupare, inoltre ti fornisce funzioni per la ricerca l' ordinamento, la copia ecc, ecc.
  • Re: Risorse progetto

    barba59 ha scritto:


    ciao dna_programmer
    nell' antichità si usavano gli array che dimensionavi all' inizio e che poi ti toccava ridimensionare, procuravano un sacco di rogne e riempivano i forum di continue richieste di aiuto.
    ahahah
    Sarebbero le famose liste concatenate , se non sbaglio? Quelle con i puntatori

    Ok , ho fatto il setup e funziona da dio

    Un'altra cosa, ma sai per caso come è possibile fare setup personalizzati; esempio quelli in cui accetti un contratto, che ti chiedono dove lo vuoi installare o che ti fa il collegamento sul desktop
  • Re: Risorse progetto

    No, mi dispiace su questo non so aiutarti.
  • Re: Risorse progetto

    A ok no problem.
    Il fatto delle list è come l'ho capito io?
  • Re: Risorse progetto

    Boh! Alla fine non so se mi sono spiegato. Io sostengo che conviene usare i 'List Of' che sono sicuri e flessibili.
  • Re: Risorse progetto

    A ok comunque il setup e il fatto delle risorse esterne funziona da dio.Grazie ancora ciao
Devi accedere o registrarti per scrivere nel forum
12 risposte