Newsgroup: it.comp.appl.access
Titolo: Problema grafico con visible=False o True

Buongiorno a tutti.
Il problema di oggi è legato ad un effetto che non mi piace nella
visualizzazione di controlli formato Immagine.
Vedo di spiegare nel dettaglio il mio problema:
-Per dare una veste grafica migliore al mio programma ho impostato a
trasparente un pulsante di comando.
-Ho creato due controlli Immagine che hanno due Gif incorporate che
rappresentano un pulsante evidenziato e uno meno evidenziato.
-Sull'evento MouseMove del comando rendo visibile=true uno dei due
controlli immagine e l'altro visible=false.
-Sull'evento MouseMove del Corpo inverto le proprietà di visibilità dei
due controlli di cui sopra.
Ecco il problema che mi si presenta è che fra lo "scambio" di visibilità
dei due controlli, appare un'area grigia della stessa dimensione dei
contolli, che oltre ad essere brutta, rende vano lo "sforzo" grafico.
Da cosa può dipendere??
Saluti.
-- 
Raffaele Alberoni
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Per risolvere il tuo problema vai sul Sito Comune (link qui sotto) e nella
Sezione Forms leggi la FAQ di Alessandro Baraldi intitolata "Esempio di come
realizzare pulsanti ad effetto tipo OutLook"; naturalmente dai un'occhiata
al database di esempio allegato a quella FAQ.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Roberto da casa ha scritto:


Grazie Roberto per il suggerimento, avevo già visto tempo fa questa cosa e
avevo preso qualche spunto.
Per maggiore certezza ho rifatto la mia procedura seguendo interamente la
logica di Alessandro Baraldi.
Il problema è che questo "sfarfallio" di quadretti grigi rimane.
L'unica differenza è che le mie sono Gif, quelle di Baraldi sono BMP.
Che sia questo il problema??
Adesso provo a convertire le immagini.
Premesso che lo sfondo della maschera è un'altra GIF (colorata di blu).
Premesso anche che l'esempio di Baraldi funziona egregiamente senza
sfarfallii..
Saluti


Raffaele Alberoni ha scritto:




Niente da fare continua lo sfarfallio.
A questo punto mi chiedo se dipende dalle capacità grafiche del computer.
Il che sarebbe un problema, dovendo installare questa applicazione in una
catena di negozi in Franchising... e quindi chissà quali configurazioni
avranno nei loro PC!!!!


 Raffaele Alberoni ha scritto:





... Mi sto rispondendo da solo man mano che faccio delle prove. (spero
che questo possa aiutare altri che si trovino nello stesso problema)
Allora la cosa che ho scoperto adesso è che questo sfarfallio ce l'ho solo
nella maschera nella quale ho impostato per "nascondere" ACCESS.
Seguendo gli esempi del Sito Comune, leggendo un post di Karl, ho
impostato la mia maschera in modo che non sia visualizzabile ACCESS, ma
questo da questi problemi, tant'è vero che rimettendo la funzionalità
normale, non ho più gli effetti di sfarfallio !!!!!
Qualcuno ha suggerimenti in proposito???
Saluti.


"Raffaele Alberoni" <Raff...@Romagnacom.com> ha scritto nel messaggio
news:c1vkgp$5e2$1...@news.newsland.it...

Proteggiti dall'eventuale sfarfallio del video tramite l'uso del metodo Echo
(vedi help).





Forse è peggio!!!!
Adesso mi permetto di postarti il codice.... Se ti va di darci un
occhiata!!! Per vedere dove può essere il problema
Option Compare Database
Option Explicit
Dim ArrayPulsanti(0 To 7) As String
Dim hWindow As Long
Dim nResult As Long
Dim nCmdShow As Long
Const SW_HIDE = 0
Const SW_NORMAL = 1
Const SW_MINIMIZED = 2
Private Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
'ARRAY
Sub CreaArray()
    ArrayPulsanti(0) = "Uscita"
    ArrayPulsanti(1) = "Icona"
    ArrayPulsanti(2) = "Clienti"
    ArrayPulsanti(3) = "Help"
    ArrayPulsanti(4) = "Offerta"
    ArrayPulsanti(5) = "Conto"
    ArrayPulsanti(6) = "Statis"
    ArrayPulsanti(7) = "StatisGraf"
End Sub
Sub CancellaEffetti()
    Application.Echo False
    Dim X As Integer
    For X = 0 To UBound(ArrayPulsanti)
        Me(ArrayPulsanti(X) & "1").SpecialEffect = 0
        Me(ArrayPulsanti(X) & "1").FontBold = False
        Me(ArrayPulsanti(X) & "2").Visible = True
        Me(ArrayPulsanti(X) & "3").Visible = False
    Next
    Application.Echo True
End Sub
Function EffectMe(strControl As String)
    CancellaEffetti
    Application.Echo False
    Me(strControl & "1").SpecialEffect = 0
    Me(strControl & "1").FontBold = True
    Me(strControl & "2").Visible = False
    Me(strControl & "3").Visible = True
    Application.Echo True
End Function
'FORM
Private Sub Form_Open(Cancel As Integer)
    hWindow = Application.hWndAccessApp
    nCmdShow = SW_HIDE
    nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
End Sub
Private Sub Form_Load()
    DoCmd.Restore
    Me.InsideHeight = 10490
    Me.InsideWidth = 15032
    ..
    ..
    CreaArray
End Sub
Private Sub Corpo_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
    CancellaEffetti
End Sub
Saluti.


"Raffaele Alberoni" <Raff...@Romagnacom.com> ha scritto nel messaggio
news:c1vo6k$g44$1...@news.newsland.it...

Mi dispiace ma non sono in grado di dirti quale parte del codice VBA di cui
sopra sia la causa del tuo sfarfallio.





Grazie comunque Roberto per l'interessamento.
Io penso che sia qualcosa legato alle API di Windows, infatti questo
problema ce l'ho solamente quando rendo invisibile la maschera di ACCESS,
in modalità normale non ho nessun problema!!!!


 Saluti.
Vorrei avere un consiglio se possibile:
Avendo più chiaro il problema e quindi anche il soggetto del post è
diverso, contravvengo alle regole del NG, se invio un nuovo messaggio con
specificato meglio il problema?


 Raffaele Alberoni
Penso che se cambi il subject e specifichi che stai ponendo in modo diverso
un problema già posto ma non risolto, nessuno dovrebbe spararti addosso. ;-)
