Forms

3.74 Cambiare la forma del puntatore quando il mouse si sovrappone ad un controllo di una maschera
  Roberto
Per i controlli che hanno tra le loro proprietà Indirizzo coll. ipertestuale, quindi per le etichette, i pulsanti di comando e i controlli immagine, far cambiare da freccia a "manina" (mano chiusa con l'indice puntato) la forma del puntatore del mouse quando lui si sovrappone ad essi è molto facile in quanto è sufficiente digitare uno spazio nella suddetta proprietà: al resto ci pensa a tutto Access.

Se invece si vuole cambiare la forma del puntatore quando il mouse si sovrappone ad altri tipi di controlli oppure se si vuole usare una forma che sia diversa dalla "manina", per realizzare questo si può far ricorso alle API di Windows.

Inserire nella cartella che contiene il database corrente i file di tipo .ICO e/o .CUR che contengono le immagini che volete assegnare al puntatore del mouse.
Memorizzare in un modulo del databse il seguente codice VBA:
 Option Compare Database
 Option Explicit

 Declare Function LoadCursorFromFile Lib "user32" Alias _
   "LoadCursorFromFileA" (ByVal lpFileName As String) As Long

 Declare Function SetCursor Lib "user32" _
   (ByVal hCursor As Long) As Long

 Public Function PointM(strPathToCursor As String)
   Dim lngRet As Long
   lngRet = LoadCursorFromFile(strPathToCursor)
   lngRet = SetCursor(lngRet)
 End Function

 Public Function Cursore(Immagine As String)
 Dim MioCursore As String
 MioCursore = Left(CurrentDb.Name, Len(CurrentDb.Name) - _
 Len(Dir(CurrentDb.Name))) & Immagine
 Call PointM(MioCursore)
 End Function
Se si vuole che il puntatore del mouse cambi forma quando si sovrappone ad una casella di testo, se il file .ICO che avete sistemato nella cartella del database corrente e che contiene la forma del puntatore si chiama LENTE.ICO, nella proprietà Su mouse spostato della casella di testo scrivere:
 =Cursore("LENTE.ICO")
Attenzione!!
Non si deve generare una routine VBA a fronte dell'evento Su mouse spostato e scriverci dentro =Cursore("LENTE.ICO"), ma si deve scrivere quanto sopra a fianco della scritta dell'evento, al fine di richiamare direttamente la funzione Cursore() .

Download:
 
  PuntatoreMouse.zip (28Kb) MSAccess97 database


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.