Newsgroup: it.comp.lang.visual-basic
Titolo: VB6: Visualizzare immagini PNG a 32bit in una ListView

In VB6 vorrei visualizzare immagini a 32 bit con canale alpha (PNG o
altro formato compatibile) in una ListView.
Siccome le immagini da visualizzare in una ListView devono essere
contenute in una ListImages, penso che il
problema sia tutto lì: riuscire ad aggiungere in un controllo
ListImages una immagine a 32 bit.
Ho provato a fare qualche ricerca e mi sono saltati fuori le GDI+, lo
stile XP (mediante manifest o risorsa) ed altre amenità, ma
concretamente non sono riuscito a fare quello che volevo. Qualcuno mi
dà una dritta?

 d� una dritta?
Io non ci son riuscito, ma non c'ho perso neanche tempo.
Neanche questa funzionava:
http://www.vbaccelerator.com/home/vb/Code/Controls/ImageList/vbAccelerator_Image_List_Control/article.asp
Qui c'� qualcosa, prova a vedere, non ho letto il codice.
http://www.vbaccelerator.com/home/vb/Code/Controls/ImageList/Displaying_Alpha_(32bit)_Icons_with_ImageLists/article.asp

 d� una dritta?
Mostrare una immagine a 32 bit con alpha channel in una listview 
standard VB6 credo non sia possibile, pi� che altro per la natura stessa 
della LV. Addirittura 'ufficialmente' VB6 non consente l'uso di PNG.
Utilizzando la GDI ed un tot di API si riesce comunque ad implementarne 
l'uso (almeno limitatamente a certi componenti), anche di quelli a 32 
bit con alpha channel.
Personalmente mi rivolgerei a controlli analoghi alla listview che 
possano farne uso. VbAccelerator ha una ListView ed una ListImages 
'custom' che, se non ricordo male, supportano 32bit ed alpha channel.
-- 
-> GbC|
www.gbcweb.com
www.chiappori.com
 

 'custom' che, se non ricordo male, supportano 32bit ed alpha channel.
Almeno che non abbiano aggiornato rispetto alla mia, le png non ci
funzionano.
Io ho fatto una scelta che se uso un ambiente di sviluppo vecchio questo �
quello che c'� da aspettarsi, se devo mettere un'icona ne cerco una
compatibile.	


sono anni che non uso quel controllo, ma ricordo di averlo usato con 
immagini RGBA


 altro formato compatibile) in una ListView.
Le icone (ico) possono essere immagini RGBA.
Ora... Potremmo iniziare una discussione infinita sulla necessit� di 
usare immagini a 8, 24 o 32 bit. Credo di intuire che la necessit� sia 
nell'alpha channel (visto che pensare di usare una listview per fare 
browsing di immagini � un suicidio posso solo ipotizzare che la 
richiesta sia per l'utilizzo di icone o simboli di alta qualit�), e i 
componenti VBAcc dai miei ricordi gestiscono quelle immagini.


 browsing di immagini � un suicidio
l'explorer di vista anche coi jpeg pesanti se la cava benino, � coi tiff da 
20-50 mb che ansima
ciao 


We PAL...
Explorer? Perch� dici queste parole arcane?


 Qui c'è qualcosa, prova a vedere, non ho letto il codice.
http://www.vbaccelerator.com/home/vb/Code/Controls/ImageList/Displayi.
..
Sì avevo letto quella roba e l'esempio che ti fanno scaricare funziona
pure.
Ci sono però due limitazioni:
- bisogna linkare l'eseguibile con i nuovi Common Controls (stile XP)
- bisogna utilizzare file ICO (ho provato a far caricare una PNG e non
funziona)
Ho provato con lo stile XP, ma bisogna stare MOLTO attenti perchè gli
gli option button
in un frame non vengono visualizzati bene e forse c'è qualche altro
problema. Vorrei evitare.
Forse per la seconda limitazione non ci sono grossi problemi...

 componenti VBAcc dai miei ricordi gestiscono quelle immagini.
Sì, devo visualizzare dei simboli di alta qualità per abbellire la
grafica
dell'applicazione (icone da 128x128). Niente foto.

 problema. Vorrei evitare.
Anche i button, ma se su XP usi un tema tipo "Royale Noir" ritornano a far
bene.
Ma come mai volevi caricare queste immagini? Se � una questione estetica
proverei ad usare immagini pi� "povere" e amen.


[snip]
Lo stile XP, che io sappia, ha un solo problema con i button all'interno 
di frames, ma basta mettere i button in una picture e passa la paura.


 proverei ad usare immagini più "povere" e amen.
Proprio per una questione estetica vorrei delle immagini meno
"povere", se si
può fare.

 di frames, ma basta mettere i button in una picture e passa la paura.
Il fatto è che ho già disegnato parecchi form con frame e option
button,
mi tocca ridisegnarli.
Quindi frame (per il titolo), dentro una picturebox e infine gli
option button?

 option button?
si.. option, command e check hanno il problema
guarda qui: 
www.gbcdepot.com/__test/ss_test.jpg
fatto con delle picture sotto


 pu� fare.
Diciamo che sarebbe un buon motivo per spingere verso nuovi sistemi di
sviluppo, tanto prima o poi andr� fatto.
Comunque si trovano icone decenti anche compatibili, certo se l'idea � far
sembrare un sw scritto in VB6 come fosse .NET/WPF allora no.

 fatto con delle picture sotto
La listview � standard oppure � quella di vbaccelerator.
Perch� sui controlli di quel tipo a me non eredita il visual style, ma solo
sui controlli "base".


� quella standard di VB5.
Le funzioni della versione 6 non presenti nella 5 sono implementate via 
API.


 Explorer? Perch� dici queste parole arcane?
nonono
nun le dico ar cane
le dico ar gibi :P 


L'hai mai visto quel codice incredibile che con pochissime istruzioni 
crea un clone di explorer?
Spe che lo cerco...
EccHIolo:
http://www.gbcdepot.com/free/vb_routines/internet_vbexplorer.zip
Questo si che usa icone RGBA, solo che dopo anni non � che abbia ancora 
ben capito come funziona :/


 ben capito come funziona :/
bello, e velocissimo.
comunque, non so con questo, guardarsi parecchie cartelle con centinaia di 
icone � una delle cose che pi� impallano windows. troppe volte explorer � 
crollato... coi vecchi windows le risorse grafiche salutavano e dovevo 
riavviare.
non so seven, con vista va un po' meglio, ma solo un po'. ma penso che il 
listview del suo explorer usi il framework.
ciao 

ben capito come funziona :/
Molto bellino, non lo conoscevo
--
ciao
  Stefano

Molto bellino, non lo conoscevo
A tempo perso voglio riuscire a fargli leggere lo spazio disponobile sulle penne
o dispositivi rimovibili che Explorer su Xp non legge.
Ho visto che non hai implementato la status bar, proprio dove dovrebbe comparire
lo spazio libero.
Mi sono fatto un vbs apposta per le pennette, eccolo:
ShowFree.vbs
________________________________
Const UnknownType = 0
Const Removable = 1
Const Fixed = 2
Const Remote = 3
Const CDRom = 4
Const RamDisk = 5
' List All Disk Drives
Dim Td
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
  If objDrive.IsReady Then
	If objDrive.DriveType = Removable Then
     Td = Td & objDrive.DriveLetter &":\ Tot:" & (objDrive.TotalSize/1048576) &
" Free:" & (objDrive.AvailableSpace /1048576) & vbCrLf
	End If
  End If
 If Len(Td) Then
   Msgbox Td,,"REMOVABLE DRIVEs"
 End If
Next
WScript.Quit
_________________
--
ciao
  Stefano