immagine in listbox cell

  1. 7 months ago

    ciao a tutti, non riesco a fare quanto in oggetto,

    devo mostrare un file png (carello) nell'ultima cella della mia listbox (lista prodotti), in una delle ultime versioni hanno aggiunto la proprietà

    non riesco a capire come inserire nel progetto il file png (solitamente uso imagewell) e farlo riconoscere alla listbox.......

    ho provato cosi ma non va

    LstProdotti.CellPicture(LstProdotti.LastIndex,9) = Image1

    grazie,
    ciro

  2. Antonio R

    21 Apr 2017 Pre-Release Testers, Xojo Pro Europe (Italy)

    CellPicture è relativo ad una WebListBox. Non esiste per quella desktop, dove c'è rowPicture (se la vuoi all'inizio della riga)

    Alternativa (migliore) è disegnarla nel CellBackGoundPaint

    L'immagine può essere una risorsa (aggiungi una Image e con le risoluzioni che supporti)
    Altrimenti la puoi copiare nelle risorse con un copystep e caricarla da li (anche multi risoluzione)

  3. Edited 7 months ago

    hai ragione antonio, mi serve proprio per una weblistbox

    non so come agganciare l'immagine, mi dà sempre nil object, image1 è aggiunta come risorsa image well

  4. Antonio R

    21 Apr 2017 Pre-Release Testers, Xojo Pro Europe (Italy)

    Aggiungi al progetto l'immagine (trascina il file nel navigatore)
    Se vuoi supportare l'alta risoluzione devi avere 2 immagini, di dimensioni una il doppio dell'altra, trascina la più piccola e poi l'altra nel riquadro 2x

    Puoi cambiare il nome all'immagine (nel navigatore e quindi nel progetto) tramite l'inspector

    Ad esempio "carrello".

    LstProdotti.CellPicture(LstProdotti.LastIndex,9) = carrello

  5. Edited 7 months ago

    è quello che ho fatto io, ma non va

    png 32x32

  6. Antonio R

    21 Apr 2017 Pre-Release Testers, Xojo Pro Europe (Italy)

    Veramente tu avevi detto che avevi utilizzato l'imageWell

  7. Edited 7 months ago

    ho provato in entrambi i modi.....può essere un problema il fatto che è l'ultima colonna della listbox che deve contenere l'immagine?

    cioè io riempio la listbox con una query, ed il solito comando

    					LstProdotti.AddRow(codart,desart,rs.IdxField(3).StringValue,impuni,sconto1,sconto2,sconto3,sconto4,replace(mid(dispcont.ToText,1,len(dispcont.ToText)-4),".",","),"")							

    l'immagine dovrebbe apparire al posto di "" nell'ultima colonna..

    ho provato anche a fare in questo modo, ma continua la nil object exception....

    dim f As FolderItem
    dim p as Picture
    if DebugBuild then
    	f = GetFolderItem("c:\ascolib2b\cart_icon.png") 
    else
    	f = GetFolderItem("cart_icon.png") 
    end if
    p = f.OpenAsPicture
    LstProdotti.CellPicture(LstProdotti.LastIndex,9) = p
  8. Antonio R

    22 Apr 2017 Pre-Release Testers, Xojo Pro Europe (Italy)

    Allora, p non deve essere una picture ma una web picture. hai controllato se f è nil o se f esiste?
    Se assegni l'immagine a una WebImagewell funziona?
    Se fai disegnare l'immagine a un webCanvas funziona?

    Non è un problema, sono convinto che non hai creato l'immagine nel progetto.

  9. allora Antonio, guarda questi screen

    definizione immagine nel progetto (drag & drop del file)
    -image-

    test con imagewell su pagina qualsiasi
    -image-

    comando per farla apparire nell'ultima cella di ogni riga (è immagine di un carrello.....)
    -image-

    eccezione sollevata da Xojo di nil object
    -image-

    non so + cosa provare :-(((((
    xojo 2016r4.1 su windows

  10. Antonio R

    23 Apr 2017 Pre-Release Testers, Xojo Pro Answer Europe (Italy)

    Ok ora è chiaro.
    Ti eri scordato di dirmi che era in un Thread

    Credo sia per il fatto che la web picture in un Thread manchi del percorso corretto.
    Ora un Thread è indipendente dalla sessione e per quanto un'immagine come questa sia "generale" per qualche motivo (volendo anche comprensibile) l'immagine non viene correttamente gestita.
    Ma se utilizza un webThread il problema non si pone. L'immagine viene caricata correttamente

  11. ciao Antonio, quale è la differenza tra thread e webthread a livello di oggetti disponibili?

    ossia, come imposto un webthread scegliendolo dalla library???

    questo comporterà modifiche al mio thread o posso fare un copia/incolla?

  12. Antonio R

    24 Apr 2017 Pre-Release Testers, Xojo Pro Europe (Italy)

    come esecuzione sono più o meno equivalenti.
    Un thread è qualcosa che fai girare magari a livello di app (ovvero non legato ad una sessione in particolare se non magari per restituire i risultati, ma in ogni caso dovrai identificarne il contesto)
    Un webThread è a livello di sessione per cui in questo caso non ti comporta errori.

    Un web thread è una sottoclasse di thread

  13. Edited 7 months ago

    grazie! in effetti utilizzando un metodo al posto del thread funziona, avevo usato il thred per gestire una progress wheel....

    non sono riuscito a fare un webthread (non so come definirlo)

    ultima cosa, dovendo cambiare l'immagine su ogni riga (ad es. immagine prodotto), devo utilizzare qualcosa del tipo:

    dim f As FolderItem
    dim p as Picture
    if DebugBuild then
    	f = GetFolderItem("c:\ascolib2b\cart_icon.png") 
    else
    	f = GetFolderItem("cart_icon.png") 
    end if
    p = f.OpenAsPicture
    LstProdotti.CellPicture(LstProdotti.LastIndex,9) = p

    immagino???

  14. Antonio R

    26 Apr 2017 Pre-Release Testers, Xojo Pro Europe (Italy)

    Se l'immagine è una icona crea l'immagine nell'IDE e poi la usi a seconda delle condizioni.
    Se è un'immagine di un prodotto invece:
    Diciamo che la cartella dove sono le immagini è c:\ascoli2b\images\ (se sono tante meglio una cartella apposita)
    Aggiungi un copy step per averle nel progetto (nelle risorse mi raccomando) in ogni caso (imposta a Both)
    Crea un metodo per trovarle tipo (poniamo che hai il nome nel db) che:

    • Verifica che nelle risorse c'è la cartella images (Usa GetResource("images") di Xojo.IO.FolderItem.specialFolder , con un try perché se non lo trova da eccezione)
    • Se esiste trasformala in folderItem classica (New FolderItem(IO_FOLDER_ITEM.path, FolderItem.pathNative))
    • vedi se come child esiste l'immagine cercata
    • se esite ne crei la WebPicture (non la picture) (shared se non ricordo male per ricaricarla)

    (Scritto a mente, verifica...)

or Sign Up to reply!