Newsgroup: it.comp.appl.access
Titolo: Usare etichette come pulsanti di comando

Salve,
in una maschera ho delle etichette che, tramite l'evento clic, uso come
se fossero dei pulsanti di comando.
Se si clicca su un pulsante di comando, si ha la possibilità,
mantenendo premuto il tasto del mouse, di spostarsi fuori dal pulsante
di comando e rilasciare il tasto del mouse evitando che venga eseguita
l'azione del pulsante di comando.
Con le etichette, nonostante l'evento sia lo stesso (clic), questo non
avviene. Anche se mi sposto fuori dall'etichetta e rilascio il tasto
del mouse, l'azione avviene comunque.
E' possibile, sotto questo aspetto, far comportare le etichette come i
pulsanti di comando?

 Salve,




-- 
Ciao
Pablitomf (Maurizio Facciuti)
Access : Ver.97 - 2K
----------------------------
http://www.accessgroup.it/
----------------------------
Non mi fido molto delle statistiche, perchè un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media.
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 pulsanti di comando?
Bhč in maniera nativa no... il pulsante di comando č uno strumento nativo
di vba con determinate carateristiche che di fatto lo differenziano da
altri elementi (tipo label)... e una di queste č proprio quella esaminata
da te...
con le etichette, a differenza del pulsante di comando, l'evento clik si
aziona immediatamente, e non dopo la pressione subordinata alla posizione
del cursore sull'area del pulsante stessa... con le etichette questa
operazione potrebbe essere emulata solo con codice.
-- 
Ciao
Pablitomf (Maurizio Facciuti)
Access : Ver.97 - 2K
----------------------------
http://www.accessgroup.it/
----------------------------
Non mi fido molto delle statistiche, perchč un uomo con la testa nel forno



Ciao Pablitomf,
non so se è google che fa casini, ma leggo solo il mio quoting e non
un'eventuale risposta.

 operazione potrebbe essere emulata solo con codice.
[CUT]
Potresti tu, o qualcun altro, dirmi che tipo di codice dovrei usare per
ottenere ciò che voglio?
Suppongo di dover usare l'evento MouseMove del corpo della maschera.
Ciao e grazie.

robb ha scritto:

Prova a gestire l'evento MouseUp invece che il Click.
@Alex

 @Alex
Ciao Alex,
ci avevo già provato (per sicurezza ho provato anche MouseDown), ma la
situazione resta stranamente immutata.

robb ha scritto:

Allora devi usare un trucchetto.
Una variabile di tipo Boolean a livello di Form, la setti=True su Click
della Label e la resetti su MouseMove del Corpo della Form.
Quindi su MouseUp della label se la variabile=True esegui la Routine,
ovviamente
la devi resettare anche dopo aver eseguito la Routine.
@Alex


Grazie della risposta Alex.
Avrei trovato un'alternativa al tuo trucchetto, e cioè posizionare su
ogni etichetta un pulsante di comando trasparente.
Visto che si tratta di 7 etichette e tenendo conto dell'efficienza del
db (già bello carico di routine), quale dei due trucchi mi converrebbe
usare?

 usare?
Fosse per me nessuno dei 2, io userei direttamente dei CommandButton,
ma
dovendo sottostare alla grafica prova con i 7 Button(Trasparenti).
@Alex


MouseUp funziona devi pero' osservare X e Y (parametri del MouseUp) se 
uno dei due e'negativo o uno dei due e' maggiore rispettivamente di 
Height o Width (del controllo) vuol dire che sei fuori dal controllo
Ovviamente senza l'evento di click, solo mouseup
--
ac

Alessandro Cara ha scritto:

Grande... mi era sfuggito.
@Alex


Ottimo!
Come faccio a settare per bene X e Y di ogni label?
Ciao e grazie.


non le setti tu. Le setta il sistema. E' lo scostamento (offset) 
rispetto al top-left del controllo. Per questo su x/y puoi trovare dei 
negativi se il mouse si trova a sx del left o sopra il top.
--
ac

 ac
Non ho ben afferrato un punto.
Quello che chiedo nel mio primo messaggio può essere realizzato
sfruttando l'evento MouseUp dell'etichetta?
 
Se sì, come?
Robb


Private Sub eAbil_MouseUp(Button As Integer, Shift As Integer, X As 
Single, Y As Single)
if x > eAbil.width or y>eAbil.height or x<0 or y<0 then
	msgbox "Sono fuori dal controllo. Il click non lo faccio, neanche se mi 
dai una testata"
endif
End Sub
Dovrebbe andare. L'else mettilo tu.
--
ac


Grazie! Funziona benissimo.
Ciao.