Newsgroup: it.comp.lang.visual-basic
Titolo: ImageList e Icone

Ciao a tutti,
nel fare una toolbar sto utilizzando una ImageList e delle icone a 16  o 256
colori. Il problema e' che dopo averne aggiunto alcune ed aver configurato i
relativi tasti sulla toolbar (fin qui tutto ok!), se continuo ad aggiungerne
delle altre, le precedenti vengono "rovinate" ovvero diventano con uno
sfondo nero (che non e' assolutamente quello impostato ne in Mask ne in
Background ne nella trasparenza delle icone) ed i disegni diventano
incomprensibili.
Cosa si puo' fare per ovviare a cio'?
P.S: Utilizzo VB 5, e ImageList e ToolBar "normali".
Grazie e ciao
Salvo

 wrote in message
824dfv$t9c$1...@localhost.localdomain...


 Cosa si puo' fare per ovviare a cio'?
Ho avuto lo stesso identico tuo problema proprio ieri... Io ho ovviati
rifacendo da 0 l'imagelist ma č una rottura di scatole astronomica!!!! Tutto
quello che so č che č una specie di "bug" del VB... Infatti ho notato che
succede solo quando si esce da un programma in modo "anormale" (errori
programmazione, errori di windows ecc.)... Quando do l'istruzione "End" non
succede.  Qualcuno sa qualcosa di piů?
Antonio Mirarchi

 > colori. Il problema e' che dopo averne aggiunto alcune ed aver
configurato


 somiglia molto.
Gia' credo che il problema sia identico, avete trovato qualche soluzione in
merito?
Cosi' e' proprio un disastro, ho provato ad impostare anche il ColorMask ma
non cambia nulla, mah ...
Ciao e Grazie per le vostre risposte.
Salvo

 >


Ultime notizie:
Ho trovato un progetto che utilizza la toolbar con una imagelist. Funziona
"normalmente" e non si blocca, allora mi sono chiesto se copiare (anche se
solo per una prova) l'imagelist cosi' composta da quel progetto al mio.
Risultato: La toolbar funziona benissimo con le icone caricate da quella
imagelist anche a prova di crash vari, ma non appena mi azzardo ad
aggiungerne una delle mie alla stessa imagelist, al primo crash si
ripresenta lo stesso problema pero' solo per l'icona da me introdotta.
Conclusioni: Non e' che il pasticcio sta nel tipo di icona creata ed usata?
Mica ci vorrebbe quanche accorgimento nella mascheratura o che altro???
Fatemi sapere
Ciao
Salvo

 wrote


Ho notato una cosa: se nella proprietà "imagelist" della toolbar specifico
"<nessuna>" (cioè non associo nessun controllo image list alla toolbar), pur
creando una imagelist e facendo crashare varie volte il programma le icone
non si alterano!! Se si potesse associare dinamicamente tutte le immagini
della imagelist al relativo bottone della toolbar forse si risolverebbe il
problema... QUALCUNO SA' FARLO? Ho provato anche a vedere nell'help ma
l'unico risultato che ho ottenuto e far crashare ancora il prog. :((
Antonio Mirarchi
--
 Visita lo star trek antonio mirarchi club - 
http://StarTrek.freeweb.org
  Visita World On Line - 
http://wol.n3.net
 Visita Star Trek: war! Il nuovo gioco di ruolo su Star Trek -
http://trekwar.n3.net

 wrote in message 48B14.5762$Q.5...@typhoon.libero.it...


 wrote in message 825ub4$jdk$1...@nslave1.tin.it...


 wrote in message
826pe7$9k7$1...@nslave2.tin.it...


 wrote


 wrote in message j9D14.6479$Q.7...@typhoon.libero.it...


ciao, il mail non mi e' arrivato, al momento prendo solo l'ind qui sotto.
sono online quindi butto il cod di frm e bas. se scommenti la parte finale
del frm la tb viene piatta. le icone nella il hanno key=tag= i + il numero.
spero si capisca.
quanto a vb, altre volte ho scoperto che alcune cose in teoria giuste (help
ecc.) in realta' non andavano. nei casi, cerco sempre vie alternative. qui
poi magari non cambia niente.
--
hth, pal
andrea palazzi
xday at libero dot it
FRM
Private Sub Form_Load()
    'On Error GoTo errman
    TB.ImageList = IL
    Dim btnX As Button
    Set btnX = TB.Buttons.Add(, "i01", , tbrDefault, "i01")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i02", , tbrDefault, "i02")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i03", , tbrDefault, "i03")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i04", , tbrDefault, "i04")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i05", , tbrDefault, "i05")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i06", , tbrDefault, "i06")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i07", , tbrDefault, "i07")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i08", , tbrDefault, "i08")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i09", , tbrDefault, "i09")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i10", , tbrDefault, "i10")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i11", , tbrDefault, "i11")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i12", , tbrDefault, "i12")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i13", , tbrDefault, "i13")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i14", , tbrDefault, "i14")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i15", , tbrDefault, "i15")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i16", , tbrDefault, "i16")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i16b", , tbrDefault, "i16b")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i17", , tbrDefault, "i17")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i18", , tbrDefault, "i18")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i19", , tbrDefault, "i19")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i20", , tbrDefault, "i20")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i21", , tbrDefault, "i21")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i22", , tbrDefault, "i22")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i23", , tbrDefault, "i23")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i24", , tbrDefault, "i24")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i25", , tbrDefault, "i25")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i26", , tbrDefault, "i26")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i27", , tbrDefault, "i27")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i28", , tbrDefault, "i28")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i29", , tbrDefault, "i29")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i30", , tbrDefault, "i30")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i31", , tbrDefault, "i31")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i32", , tbrDefault, "i32")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i33", , tbrDefault, "i33")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i34", , tbrDefault, "i34")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i35", , tbrDefault, "i35")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i36", , tbrDefault, "i36")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i37", , tbrDefault, "i37")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
'    Set btnX = TB.Buttons.Add(, "i38", , tbrDefault, "i38")
'    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
    Set btnX = TB.Buttons.Add(, "i39", , tbrDefault, "i39")
    Set btnX = TB.Buttons.Add(, , , tbrSeparator)
'    Dim lStyle As Long
'    Dim lReturn As Long
'    Dim ToolbarHandle As Long
'    ToolbarHandle = FindWindowEx(TB.hwnd, 0&, "ToolbarWindow32",
vbNullString)
'    lStyle = SendMessageAsLong(ToolbarHandle, TB_GETSTYLE, 0&, 0&)
'    lStyle = lStyle Or TBSTYLE_FLAT Or TBSTYLE_TRANSPARENT Or CCS_NODIVIDER
'    lReturn = SendMessageAsLong(ToolbarHandle, TB_SETSTYLE, 0, lStyle)
    Exit Sub
errman: MsgBox Error: End
End Sub
BAS
Attribute VB_Name = "Module1"
Option Explicit
Global Const WM_USER = &H400
Global Const TBSTYLE_TRANSPARENT = &H8000
Global Const TBSTYLE_FLAT = &H800
Global Const TB_SETSTYLE = (WM_USER + 56)
Global Const TB_GETSTYLE = (WM_USER + 57)
Global Const CCS_NODIVIDER = &H40
Declare Function SendMessageAsLong Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal Msg As Long, ByVal WP As Long, ByVal lp As Long)
As Long
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long

 wrote in message F4L14.7108$Q.7...@typhoon.libero.it...


 wrote in message
F4L14.7108$Q.7...@typhoon.libero.it...



Non non sbagli, ma siccome abbiamo appurato che il problema si presenta
all'uscita da un programma di VB e siccome facendo via codice l'operazione
di cui sopra tutto si "annulla" all'uscita del VB FORSE possiamo by-passare
il problema.
Antonio Mirarchi

A me basterebbe il frammento di codice che hai utilizzato per associare
l'imagelist alla toolbar, GRAZIE


Ciao a tutti
GRAZIE! Cmq io credo che se troviamo una soluzione č il caso di pubblicarla
sul sito comune, non credete?


persi un pò di pixel qui e là, ed il risultato è quello che vedi anche tu.
Avete provato, per caso? Oppure non ho ben capito io il problema?
Ciao a tutti
Cesare Nicola
http://digilander.iol.it/cesare
L'indirizzo del sito comune è:
http://www.murialdo.it/it_lang_vb

 wrote in message
MVO14.8139$Q.8...@typhoon.libero.it...


Ho ricevuto da Pal il codice di progetto. Se vuoi posso mandartelo io, se a
Pal va bene...
Se permetti, aspetto la risposta di Pal.
Ciao
Fabio


 wrote in message 828hcb$1g$1...@nslave1.tin.it...


Ehm... Non ci capisco piů un tubo! Ho appena provato a ricreare la
situazione, ma non ci riesco.
Ho inserito nell'ImageList icone (ICO, non BMP)  da 16X16, 32x32, 16 colori,
256 colori, persino delle GIF 32x32, 34x34 a 16 o 256 colori, ma tutto
funziona bene!!!!! Solo con le GIF, sembra che la definizione sia
leggermente peggiore del normale, ma č cosa da poco.
Capisco che magari č la fortuna dei principianti, ma cosě č troppo!
Io utilizzo VB5, con Win98 ed IE5; qualche mese fa, quando avevo avuto lo
stesso problema (almeno, mi sembra fosse lo stesso), avevo IE4 anzichč IE5,
ma non credo proprio che sia questo a fare differenza. Boh!
Ciao a tutti
Cesare Nicola
http://digilander.iol.it/cesare
L'indirizzo del sito comune č:
http://www.murialdo.it/it_lang_vb