Newsgroup: it.comp.appl.access
Titolo: Selezionare record corrente con click su etichetta

Carissimi, ho cercato su vari newsgroup ma non sono riuscito a trovare
nessuna informazione sul problema che pongo alla vostra attenzione.
Avevo bisogno che al passaggio del mouse su un controllo in una maschera
continua, il puntatore del mouse da freccia si tramutasse nella classica
mano chiusa con dito indice indicante.
L'effetto è stato ottenuto inserendo nella maschera una etichetta con
sfondo e cornice trasparenti e mettendo nella proprietà
SubHyperlinkAddress uno Spazio.
Il problema è che cliccando sulla etichetta non riesco a posizionare il
cursore sul record selezionato e quindi renderlo corrente.
C'è possibilità di risolvere questo problema?
Ho provato di tutto ma non sono riuscito a concludere niente...
Un grazie e un saluto a tutti.
Lino 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:8e53b6f342c6139af2...@mygate.mailgate.org...

Puoi risolverlo usando le API.
Se, come è per il mio PC, il file dell'icona della "mano" che vuoi far
comparire quando passi con il mouse sul controllo della tua maschera si
chiama HAND-M.CUR e si trova nella directory che ha il seguente indirizzo:
C:\WINDOWS\CURSORS\
Nella finestra delle proprietà del controllo, a destra della scritta "Su
mouse spostato" scrivi:
= Cursore()
Attento, non devi generare una routine VBA a  fronte dell'evento "Su mouse
spostato" e scriverci dentro =Cursore(), ma scrivere quanto sopra  a fianco
la scritta dell'evento, al fine di richiamare direttamente la funzione
Cursore() .
Inserisci in un modulo del tuo database quanto segue:
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
Function PointM(strPathToCursor As String)
  Dim lngRet As Long
  lngRet = LoadCursorFromFile(strPathToCursor)
  lngRet = SetCursor(lngRet)
End Function
Function Cursore()
Call PointM("C:\WINDOWS\CURSORS\HAND-M.CUR")
End Function
Come icona puoi usare un qualsisi file di tipo .CUR o .ICO (a parte quelli
che già hai nel tuo PC puoi scaricarne altri da internet): il nome del file
che contiene l'icona completo di percoso devi indicarlo nei parametri di
richiamo della funzione PointM dalla funzione Cursore.
Dovrebbe funzionare.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
Questo sistema [API] non è il massimo, da notevoli problemi 
di allocazione di memoria, anche se su una label non si nota
viene lanciato almeno 100 volte appena muovi il MOUSE
e carica ogni volta l'Handle del File....!
Nell'applicativo ARCHIFOTO che ho sviluppato in A_XP sono andato
in TILT per capire il perchè su un controllo Immagine nel quale
usavo questo sistema mi si rallentava la visualizzazione di un
ingrandimento....!
Parlandone con Lebans dal quale ho tratto molto codice abbiamo
tovato che il guaio era proprio la chiamata.
Anche ottimizzandola e non continuando a caricare l'Handle
come invece continua a fare la funzione senza liberare memoria...!!!
SOLUZIONE----> Eliminato e usato il SubHyperlinkAddress=" "
Ne parlammo anche con Giorgio Rancati qualche mese fà....!
Dopo il LoadCursorFormFile ed il SetCursor andrebbe liberata
la risorsa con Destroy, oppure non andrebbe ricaricata
l'icona nel caso fosse sempre la stessa....!!!
CONSIDERAZIONI
In ogni caso il problema in questo caso, da quanto capito non è
quello della MANINA, che con lo spazio nella proprietà SubHyperlink
si risolve, ma rendere ATTIVO il Record su EVENTO OnMouseMove.
Sinceramente non credo sia risolvibile, con questo sitema non viene
scatenato l'EVENTO CURRENT e non c'è modo di sapere su quale
RECORD stai passando......!(Che io sappia)
Ciao.
@Alex.
