|
[WD7.5] Menu contextuel par clic gauche sur colonne d'une table ? |
Iniciado por Samuel MONTAGNE, fev., 18 2004 11:57 AM - 11 respostas |
| |
| | | |
|
| |
Publicado em fevereiro, 18 2004 - 11:57 AM |
Bonjour. J'ai dans une fenêtre, une table mémoire remplie par programmation. Dans cette table, j'ai une colonne de type image dans lequelle j'affiche une image d'un petit bouton. Je souhaiterai, lors d'un clic GAUCHE sur cette colonne, afficher un menu contextuel.
J'ai tenté d'associer un menu contextuel à la colonne puis à simuler le clic droit sur cette colonne avec un postmessage, le menu ne s'ouvre pas. Ensuite, j'ai associé un menucontextuel à la table et simulé un clic droit SUR LA TABLE dans le code de clic de la colonne image (tjs avec un postmessage). Là, le menu s'ouvre mais pas au bon endroit (il s'ouvre en haut à gauche de la table).
Comment faire pour que le menu s'ouvre à la position du clic de la souris ?
Merci d'avance.
Samuel MONTAGNE |
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 2:02 PM |
salut !
On 18-Feb-2004, "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote:
Comment faire pour que le menu s'ouvre à la position du clic de la souris ?
Ben j'ai vu passer des infos sur ce sujet, mais je ne sais plus où ni quand .... En tout cas, moi, sous WD 8, j'utilise ouvrepopup() et ouvrepopupposition() qui sont des fonctions rudement pratiques ! Bon ... je sais ... c'est de la pub .... mais c'est vrai !
-- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477 |
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 3:23 PM |
Merci de ce début de réponse mais malheureusement, je n'ai pas le budget pour passer en WD8 pour le moment. Il va falloir que je fasse avec les moyens du bord.
Quelqu'un à une autre idée ?????
<Marcel.berman@managingbusiness.be> a écrit dans le message de news: 40336547@news.pcsoft.fr...
salut ! On 18-Feb-2004, "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Comment faire pour que le menu s'ouvre à la position du clic de la souris
?
Ben j'ai vu passer des infos sur ce sujet, mais je ne sais plus où ni quand
... En tout cas, moi, sous WD 8, j'utilise ouvrepopup() et ouvrepopupposition()
qui sont des fonctions rudement pratiques ! Bon ... je sais ... c'est de la pub .... mais c'est vrai !
-- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477
|
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 3:31 PM |
c'est la fonction TableInfoXY(). Vous trouverez sa syntaxe dans l'aide .
Marcel.berman@managingbusiness.be wrote:
salut ! On 18-Feb-2004, "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Comment faire pour que le menu s'ouvre à la position du clic de la souris ?
Ben j'ai vu passer des infos sur ce sujet, mais je ne sais plus où ni quand ... En tout cas, moi, sous WD 8, j'utilise ouvrepopup() et ouvrepopupposition() qui sont des fonctions rudement pratiques ! Bon ... je sais ... c'est de la pub .... mais c'est vrai ! -- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477 |
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 4:37 PM |
Cette fonction donne le numéro ou nom de la ligne ou colonne cliquée dans une table. Elle ne permet pas d'ouvrir un menu contextuel à un endroit donné.
"notarioc" <notarioc@net-up.com> a écrit dans le message de news: 403369b8@news.pcsoft.fr...
c'est la fonction TableInfoXY(). Vous trouverez sa syntaxe dans l'aide . Marcel.berman@managingbusiness.be wrote: salut ! On 18-Feb-2004, "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Comment faire pour que le menu s'ouvre à la position du clic de la souris
?
Ben j'ai vu passer des infos sur ce sujet, mais je ne sais plus où ni quand
... En tout cas, moi, sous WD 8, j'utilise ouvrepopup() et ouvrepopupposition()
qui sont des fonctions rudement pratiques ! Bon ... je sais ... c'est de la pub .... mais c'est vrai !
-- Marcel Berman c/o Managing Business SPRL Allée du Petit Paris, 11 B - 1410 - Waterloo Tel : +32 2 351.60.64 Fax : +32 2 351.45.78 Gsm : +32 475.799.477
|
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 5:26 PM |
par défaut , sur une table le coin haut gauche ( ou coin bas gauche si on est en bas d'un écran )du menu contextuel est situé à l'endroit du clic droit |
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 5:36 PM |
Je suis d'accord mais seulement dans le cas ou l'ouverture du menu contextuel est effectué par un clic droit. Dans mon cas, le menucontextuel est ouvert paar un clic gauche. Essayez ceci : Dans le code "Bouton gauche enfoncé" d'un champs, copier le code suivant : Externe "WINCONST.WL" //A placer dans l'initialisation de la fenêtre SendMessage(Handle(MonChamps),WM_RBUTTONDOWN,0,0) SendMessage(Handle(MonChamps),WM_RBUTTONUP,0,0)
Celà simule un clic droit lors d'un clic gauche (normalement car dans ma colonne image de ma table ça ne marche pas mais passons).
Le menu n'est pas ouvert à la position de la souris !!!!!!
Donc, comment faire pour : 1/ ouvrir le menu à la position voulue ? 2/ ouvrir l menu par clic gauche SUR UNE COLONNE IMAGE d'une table mémoire ?
"notarioc" <notarioc@net-up.com> a écrit dans le message de news: 40338598@news.pcsoft.fr...
par défaut , sur une table le coin haut gauche ( ou coin bas gauche si on est en bas d'un écran )du menu contextuel est situé à l'endroit du clic
droit > |
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 6:13 PM |
MonChamp..MenuContextuel=MonMenu
SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),-1)
//et dans Bouton Droit Relaché(WM_RBUTTONUP) MonChamp..MenuContextuel=MenuContextuelDésactivé
"Samuel MONTAGNE" <samuel.montagne@free.fr> wrote:
Je suis d'accord mais seulement dans le cas ou l'ouverture du menu contextuel est effectué par un clic droit. Dans mon cas, le menucontextuel est ouvert paar un clic gauche. Essayez ceci : Dans le code "Bouton gauche enfoncé" d'un champs, copier le code suivant
:
Externe "WINCONST.WL" //A placer dans l'initialisation de la fenêtre SendMessage(Handle(MonChamps),WM_RBUTTONDOWN,0,0) SendMessage(Handle(MonChamps),WM_RBUTTONUP,0,0)
Celà simule un clic droit lors d'un clic gauche (normalement car dans ma colonne image de ma table ça ne marche pas mais passons).
Le menu n'est pas ouvert à la position de la souris !!!!!!
Donc, comment faire pour : 1/ ouvrir le menu à la position voulue ? 2/ ouvrir l menu par clic gauche SUR UNE COLONNE IMAGE d'une table mémoire ?
"notarioc" <notarioc@net-up.com> a écrit dans le message de news: 40338598@news.pcsoft.fr...
par défaut , sur une table le coin haut gauche ( ou coin bas gauche si
on
est en bas d'un écran )du menu contextuel est situé à l'endroit du clic droit
|
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 7:56 PM |
j'avais oublié quelque chose : SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),-y +x) ou y et x sont les positions horizontale et verticale de la souris .
"notarioc" <notarioc@net-up.com> wrote:
MonChamp..MenuContextuel=MonMenu SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),-1) //et dans Bouton Droit Relaché(WM_RBUTTONUP) MonChamp..MenuContextuel=MenuContextuelDésactivé "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Je suis d'accord mais seulement dans le cas ou l'ouverture du menu contextuel est effectué par un clic droit. Dans mon cas, le menucontextuel est ouvert paar un clic gauche. Essayez ceci : Dans le code "Bouton gauche enfoncé" d'un champs, copier le code suivant :
Externe "WINCONST.WL" //A placer dans l'initialisation de la fenêtre SendMessage(Handle(MonChamps),WM_RBUTTONDOWN,0,0) SendMessage(Handle(MonChamps),WM_RBUTTONUP,0,0)
Celà simule un clic droit lors d'un clic gauche (normalement car dans ma colonne image de ma table ça ne marche pas mais passons).
Le menu n'est pas ouvert à la position de la souris !!!!!!
Donc, comment faire pour : 1/ ouvrir le menu à la position voulue ? 2/ ouvrir l menu par clic gauche SUR UNE COLONNE IMAGE d'une table mémoire ? "notarioc" <notarioc@net-up.com> a écrit dans le message de news: 40338598@news.pcsoft.fr...
par défaut , sur une table le coin haut gauche ( ou coin bas gauche si on
est en bas d'un écran )du menu contextuel est situé à l'endroit du clic droit
|
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 18 2004 - 8:50 PM |
Je ne connaissais pas l'astuce : je vais essayer. Merci pour tout
"notarioc" <notarioc@net-up.com> a écrit dans le message de news: 403390ff@news.pcsoft.fr...
MonChamp..MenuContextuel=MonMenu SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),-1) //et dans Bouton Droit Relaché(WM_RBUTTONUP) MonChamp..MenuContextuel=MenuContextuelDésactivé "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Je suis d'accord mais seulement dans le cas ou l'ouverture du menu contextuel est effectué par un clic droit. Dans mon cas, le menucontextuel est ouvert paar un clic gauche. Essayez ceci : Dans le code "Bouton gauche enfoncé" d'un champs, copier le code suivant :
Externe "WINCONST.WL" //A placer dans l'initialisation de la fenêtre SendMessage(Handle(MonChamps),WM_RBUTTONDOWN,0,0) SendMessage(Handle(MonChamps),WM_RBUTTONUP,0,0)
Celà simule un clic droit lors d'un clic gauche (normalement car dans ma colonne image de ma table ça ne marche pas mais passons).
Le menu n'est pas ouvert à la position de la souris !!!!!!
Donc, comment faire pour : 1/ ouvrir le menu à la position voulue ? 2/ ouvrir l menu par clic gauche SUR UNE COLONNE IMAGE d'une table mémoire
? "notarioc" <notarioc@net-up.com> a écrit dans le message de news: 40338598@news.pcsoft.fr...
par défaut , sur une table le coin haut gauche ( ou coin bas gauche si on
est en bas d'un écran )du menu contextuel est situé à l'endroit du clic droit
|
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 19 2004 - 11:32 AM |
voici la syntaxe exacte :
nPos est un entier=CurseurPos(cpEcran) si TableSelect(MaTable) alors SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),nPos) FIN //attention , le menucontextuel de la table doit être sélectionné dans l'onglet détail de la fenêtre ( pas de la table )
"Samuel MONTAGNE" <samuel.montagne@free.fr> wrote:
Je ne connaissais pas l'astuce : je vais essayer. Merci pour tout "notarioc" <notarioc@net-up.com> a écrit dans le message de news: 403390ff@news.pcsoft.fr... MonChamp..MenuContextuel=MonMenu SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),-1) //et dans Bouton Droit Relaché(WM_RBUTTONUP) MonChamp..MenuContextuel=MenuContextuelDésactivé "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Je suis d'accord mais seulement dans le cas ou l'ouverture du menu contextuel est effectué par un clic droit. Dans mon cas, le menucontextuel est ouvert paar un clic gauche. Essayez ceci : Dans le code "Bouton gauche enfoncé" d'un champs, copier le code suivant :
Externe "WINCONST.WL" //A placer dans l'initialisation de la fenêtre SendMessage(Handle(MonChamps),WM_RBUTTONDOWN,0,0) SendMessage(Handle(MonChamps),WM_RBUTTONUP,0,0)
Celà simule un clic droit lors d'un clic gauche (normalement car dans ma
colonne image de ma table ça ne marche pas mais passons).
Le menu n'est pas ouvert à la position de la souris !!!!!!
Donc, comment faire pour : 1/ ouvrir le menu à la position voulue ? 2/ ouvrir l menu par clic gauche SUR UNE COLONNE IMAGE d'une table mémoire ? "notarioc" <notarioc@net-up.com> a écrit dans le message de news: 40338598@news.pcsoft.fr...
par défaut , sur une table le coin haut gauche ( ou coin bas gauche
si
on est en bas d'un écran )du menu contextuel est situé à l'endroit du clic
|
| |
| |
| | | |
|
| | |
| |
Publicado em fevereiro, 20 2004 - 11:14 AM |
Grace à vous, j'ai trouvé une solution qui marche pile poil ! L'avantage de mon code est que tout se fait dans le code de clic de la colonne (donc ça marche avec n'importe quelle colonne, même celle de type image !)
Je vous donne le code (si ça peut servir à qqun) : //A place ds le code de clic de la colonne
//On force la sélection de la ligne cliqué car parfois, ça "merde" LigNum est un entier = tableinfoxy(MaTable,tinumLigne,sourisposx(),sourisposy) tableselectplus(MaTable,LigNum) //On execute si besoin le traitement associé à la sélection d'une ligne executetraitement(MaTable,trtSelection) //On génère l'ouverture du menu MaTable..Menucontextuel = MonMenu senmessage(handle(MaTable),WM_CONTEXTMENU,handle(MaTable),curseurPos(CpEcran ) MaTable..menucontextuel = ""
Merci pour tout
Samuel MONTAGNE
"notarioc" <notarioc@net-up.com> a écrit dans le message de news: 40348509@news.pcsoft.fr...
voici la syntaxe exacte :
nPos est un entier=CurseurPos(cpEcran) si TableSelect(MaTable) alors SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),nPos) FIN //attention , le menucontextuel de la table doit être sélectionné dans
l'onglet
détail de la fenêtre ( pas de la table ) "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Je ne connaissais pas l'astuce : je vais essayer. Merci pour tout "notarioc" <notarioc@net-up.com> a écrit dans le message de news: 403390ff@news.pcsoft.fr... MonChamp..MenuContextuel=MonMenu SendMessage(Handle(MonChamp),WM_CONTEXTMENU,Handle(MonChamp),-1) //et dans Bouton Droit Relaché(WM_RBUTTONUP) MonChamp..MenuContextuel=MenuContextuelDésactivé "Samuel MONTAGNE" <samuel.montagne@free.fr> wrote: Je suis d'accord mais seulement dans le cas ou l'ouverture du menu contextuel est effectué par un clic droit. Dans mon cas, le menucontextuel est ouvert paar un clic gauche. Essayez ceci : Dans le code "Bouton gauche enfoncé" d'un champs, copier le code
suivant
: Externe "WINCONST.WL" //A placer dans l'initialisation de la fenêtre SendMessage(Handle(MonChamps),WM_RBUTTONDOWN,0,0) SendMessage(Handle(MonChamps),WM_RBUTTONUP,0,0)
Celà simule un clic droit lors d'un clic gauche (normalement car dans ma colonne image de ma table ça ne marche pas mais passons).
Le menu n'est pas ouvert à la position de la souris !!!!!!
Donc, comment faire pour : 1/ ouvrir le menu à la position voulue ? 2/ ouvrir l menu par clic gauche SUR UNE COLONNE IMAGE d'une table mémoire ? "notarioc" <notarioc@net-up.com> a écrit dans le message de news: 40338598@news.pcsoft.fr...
par défaut , sur une table le coin haut gauche ( ou coin bas gauche si
on est en bas d'un écran )du menu contextuel est situé à l'endroit du clic |
| |
| |
| | | |
|
| | | | |
| | |
|