Newsgroup: it.comp.appl.access
Titolo: MouseDown

Se utilizzo la seguente routin in un controllo, alla pressione del tasto del 
mause,  funziona alla perfezione
Private Sub IDCausaleMovimento_MouseDown(Button As Integer, Shift As 
Integer, X As Single, Y As Single)
If Button = acLeftButton Then
      .............
    End If
End Sub
Se invece voglio utilizzare la stessa routin sulla maschera, non succede 
niente
La cosa strana è che se clicco nel selettore record la routin funziona....
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, 
Y As Single)
If Button = acLeftButton Then
      .............
    End If
End Sub
Si può oltrepassare l'ostacolo?
Grazie
Max 

 Si può oltrepassare l'ostacolo?
Molto probabilmente quello che ti serve è l'evento MouseDown del corpo della 
form.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

"PBsoft" <in...@REMOVEpbsoft.it> ha scritto nel messaggio 
news:875ea3551fdce8...@news.tin.it...

Infatti e quello che mi serve, ma non riesco a capire come fare.......
Grazie
Max


Ho fatto una prova. Non mi sembra che funzioni quando si sta su un 
controllo.
c'e' un altro mio vecchio post sull'argomento
http://snipurl.com/q5ej
e' il primo 3d in lista. C'e' anche tutto il codice steso.
--
ac

 controllo.
Infatti non basta catturare il MouseDown della sezione; bisogna ANCHE catturare 
il MouseDown di ogni controllo della sezione.


> Infatti e quello che mi serve, ma non riesco a capire come fare.......
Non capisco dove sia il tuo problema.
Vai in visualizzazione struttura della maschera, tasto destro su un punto 
del corpo dove non ci sono controlli, scegli proprietā.
Nella maschera delle proprietā vai negli eventi e scegli "routine evento" 
alla linea dell'evento "Pulsante mouse gių".
E' lo stesso procedimento che hai utilizzato per i controlli, non vedo differenze.
Se scrivi il motivo delle tue perplessitā, possiamo cercare di aiutarti.


 
Max vuole attivare il mousedown per "tutti" i controlli e "non" vuole 
scrivere per ciascun controllo la [Routine Evento]
--
ac

 scrivere per ciascun controllo la [Routine Evento]
Chiedo venia, ma non avevo intuito questo.
Propongo allora una soluzione: utilizzare le classi, in modo da provvedere 
automaticamente ad associare il codice necessario a tutti i controlli ed 
a tutte le sezioni desiderate.



Scusate per il mio ritardo.......
Provo a cercare qualche esempio in rete e capire qualcosa sulle classi.
Saluti
Max


http://snipurl.com/q5ej
e' il primo 3d in lista. C'e' anche tutto il codice steso.
-- 
Dopo il messaggio di G. Bertolucci e' diventato il 2' 3d in lista
cmq e' questo:
"Passare parametri a evento mouseDown : URCA Funziona!"
Li c'e' praticamente "tutto" il codice che ti serve
--
ac


Ho fatto diverse prove ........
All'apertura della maschera mi da un errore di run time 13.........tipo non 
corrispondente......e si ferma sulla seguente riga di codice
objCheck.setItem Me("cT" & Right(Ctrl.Name, 2))
Forse manca qualche libreria? o no......Nei riferimenti o parecchie librerie 
selezionate
.......
Max

 librerie selezionate
Se hai molte librerie selezionate, ti consiglio di togliere tutte quelle 
che non ti servono, ma questa è un'indicazione globale e vale sempre.
Per il tuo problema, probabilmente i controlli non hanno il nome che inizia 
con "cT", oppure il tipo dei controlli non è quello atteso dalle istanze 
delle classi.



Quel codice cercava dei controlli che il cui nome iniziava per "ct".
questa riga:
                 objCheck.setItem Me("cT" & Right(oCtrl.Name, 2))
la devi sostituire con
objCheck.setItem oCtrl
questa if
  If Left(oCtrl.Name, 2) = "cT" Then
deve  sparire.
Inoltre quel codice funziona per controlli di tipo checkbox e' evidente 
che dovrai fare gli aggiustamenti del caso
--
ac

 che dovrai fare gli aggiustamenti del caso
I controlli del tipo casella di testo li ho denominati cT01, cT02 ecc
Se cambio la riga del codice con objCheck.setItem oCtrl l'errore si verifica 
lo stesso.
Max

 
Che dice la riga precedente? Controllo di tipo checkbox
Se vuoi lavorare su textbox devi cambiare il tipo di controllo
questa  riga ad inizio delle classe
Public WithEvents oCheck As CheckBox
va sostituita con
Public WithEvents oCheck As TextBox
--
ac

 Public WithEvents oCheck As TextBox
Si adesso funziona alla perfezione......e comunque anche se si elimina tutto 
il codice dall'evento mousedown della classe, il tutto funziona ugualmente.
Volevo capire come fare a cambiare il valore di una variabile boolean alla 
presione del clic mouse scavalcanto la routin exit del controllo casella di 
testo.....
Esempio:
Private Sub cT01_Exit(Cancel As Integer)
If blna = False Then
MsgBox "non puoi uscire"
Cancel = True
Exit Sub
Else
MsgBox "OK libero di uscire"
End If
End Sub
Se mi trovo in controllo casella di testo vuoto con la variabile blna False 
e voglio andare avanti la routin mi segnala "non puoi uscire", pero vorrei 
cliccare su di un altro controllo e cambiare la variabile blna in True per 
segnalare " OK libero di uscire"...
 


ciao