Newsgroup: it.comp.appl.access
Titolo: Visualizzare shortcut menu in una form di Access con POPUP True e A scelta obbligatoria True

Ciao a tutti, lo so che il titolo è un po' lungo... portate pazienza.
Partiamo dal presupposto che creo programmi con Access impostando in tutte le forms PopUp=True e Modal=True, riducendo ad icona la finestra principale di Access. Questo accorgimento rende l'applicazione più simile ad un programma sviluppato in ambiente non Access.
Ha un limite dovuto al fatto che non puoi premere il tasto destro del mouse per  aprire il menu contestuale; questa caratteristica mi è sembrata interessante perché disabilitavo la possibilità di mettere la form in struttura senza dovermi creare menu personalizzati.
Ma ho trovato un'eccezione! Se clicco con il mouse sull'icona del programma presente nella barra delle applicazioni, ecco che ritornano i menu contestuali.
A questo punto ho bisogno che mi aiutiate a simulare da VBA il clic del mouse sull'icona nella taskbar, così metto i menu contestuali personalizzati.
Qualche suggerimento?
Grazie

 mi è sembrata interessante perché disabilitavo la possibilità di mettere la form in struttura
 
se l'obiettivo è questo sei fuori strada
per evitare che l'utilizzatore veda codice e struttura form/report/etc 
devi fornirgli l'accde/mde del tuo programma
 
BFS
 
 


Sì, conosco ed utilizzo MDE (a suo tempo), ACCDE e ACCDR.
In questo caso deve rimanere ACCDB per altre esigenze che non sto a spiegare adesso.
Hai soluzioni da darmi?
Nel frattempo, ho trovato che, se utilizzo WM_apiShowWindow(hwnd, WM_SW_MINIMIZE) ripristino la situazione disabilitando nuovamente l'utilizzo del menu contestuale.
In realtà, mi è venuta voglia di far utilizzare al cliente il menu contestuale e, quindi, mi piacerebbe lasciarlo sempre a disposizione, ma non posso dirgli di andare a cliccare sull'icona del programma.... devo trovare un altro sistema.
Idee?

 ...
 
Non capisco bene la situazione/descrizione, cioè perché non hai i menu 
contestuali. Non dovrebbe essere a causa di popup e modal.
 
Pertanto, non so se richiamare i menu contestuali tramite VBA possa 
aiutarti. In tal caso, esistono almeno due metodi: quello semplicissimo 
per richiamare i menu integrati e quello anche non complesso per i menu 
definiti dall'utente.
 
Li mostro entrambi nel mio demo db da 
https://www.isladogs.co.uk/aeu-11/
 
nel no. 14 "Context menus without right mouse".
 
Puoi vederlo anche nel video della presentazione: 
https://www.youtube.com/watch?v=k9jgkzG2IaU&t=2637s
 
 
-- 
Ciao
Karl
*********
Access Bugs: 
https://AccessForever.org
 
Access News: 
https://youtu.be/XMOHBSudo-U
 
Access DevCon: 
http://AccessDevCon.com
 
Access FAQ: 
https://www.donkarl.com/it
 


Grazie Karl, vado a vederlo subito.


Buongiorno Karl,
approfondendo un po', ho capito quale comando crea questa situazione (vedi sopra).
Utilizzo le routines Window Manipulation Examples di Peter's Software ed, in particolare, la xg_MinimizeWindow "Access" crea, come conseguenza, la disabilitazione del tasto destro del mouse e dei menu contestuali.
Basta utilizzare la xg_RestoreWindow "Access" e i menu contestuali sono nuovamente presenti.
Però ecco riapparire la finestra principale di Access, anche se la riduco al 5% tramite xg_SizeWindowByPct "Access", 5, 5
Sembrerebbe quindi che debba fare una scelta: o visualizzo i menu contestuali e la finestra di Access o nascondo entrambe.
Oppure mi serve qualcuno che mi dica come fare diversamente...

 Oppure mi serve qualcuno che mi dica come fare diversamente...
 
Se non hai bisogno della finestra principale ma vuoi liberartene, puoi 
nasconderla completamente, p.e. con 
https://www.donkarl.com/it?FAQ1.11
 
Questo non dovrebbe influire sui menu contestuali.



Grazie Karl, come sempre hai una risposta.
Provo e ti dico il comportamento.


Ultimo aggiornamento nell'attesa di trovare un modo per visualizzare sempre i menu contestuali.
Al momento ho deciso di disattivare sempre i menu contestuali e, per farlo, è bastato andare a togliere il flag di Menu di scelta rapida predefiniti, presente in Opzioni, Database corrente.
Semplice, no?
Bastava pensarci...
Grazie comunque.