Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| cacher un MAIN_MENU_POP | |
| | Auteur | Message |
---|
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: cacher un MAIN_MENU_POP Sam 15 Juin 2019 - 11:41 | |
| Bonjour à tous Voici un code pour cacher un MAIN_MENU_POP, c'est limité aux objets qui supportent la commande ON_MOUSE_MOVE mais ça fonctionne: - Code:
-
' test_main_menu_pop.bas label cacher_pop_menu dim objet_survole , last_objet_survole
panel 1 : top 1,10 : left 1,10 memo 2 : top 2,10 : left 2,250 main_menu_pop 10 sub_menu 11 : caption 11,"Fichiers" : parent 11,10
on_mouse_move 0,cacher_pop_menu on_mouse_move 1,cacher_pop_menu on_mouse_move 2,cacher_pop_menu
end cacher_pop_menu: objet_survole = number_mouse_move :' nouvelle commande off_mouse_move objet_survole ' if objet_survole<>last_objet_survole ' select objet_survole case 0: show 11 case 1: hide 11 case 2: hide 11 end_select ' end_if last_objet_survole = objet_survole on_mouse_move objet_survole,cacher_pop_menu return | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: cacher un MAIN_MENU_POP Sam 15 Juin 2019 - 12:55 | |
| Bonjour Silverman ! Content de te voir et merci pour ton code. Malheureusement, c'est trop restrictif pour moi. J'ai trop d'objet à gérer... Mais ça sera sûrement utile dans d'autre cas... Merci pour ta participation. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: cacher un MAIN_MENU_POP Sam 15 Juin 2019 - 14:09 | |
| Bonjour à tous, @Silverman Si j'en crois le manuel de référence, la commande HIDE ne s'applique pas au MAIN_MENU et SUB_MENU, mais il n'y aurait pas d'interdiction pour MAIN_MENU_POP. Ce qui pose problème pour un SUB_MENU ayant pour PARENT (Voir grand_parent) un MAIN_MENU_POP Donc je pense qu'il manque peut-être l'objet SUB_MENU_POP pour aller avec MAIN_MENU_POP et pour ce nouvel objet HIDE et SHOW fonctionnerait.
Pourtant ton code semble fonctionner J'ai fait une tentative, à partir de ton code, pour affecter un SUB_MENU "_POP" à chaque objet cliqué-droit, mais c'est un échec. Je te donne le code, quand même, pour que tu puisse regarder si tu trouves une solution. A+ - Code:
-
' test_main_menu_pop.bas label cacher_pop_menu dim objet_survole , last_objet_survole, n%
panel 1 : top 1,10 : left 1,10 memo 2 : top 2,10 : left 2,250
main_menu_pop 9 sub_menu 10 : caption 10,"Menu Contextuel Form 0" : parent 10,9 sub_menu 11 : caption 11,"sub_menu 11" : parent 11,10
sub_menu 20 : caption 20,"Menu Contextuel Panel 1" : parent 20,9 sub_menu 21 : caption 21,"sub_menu 21" : parent 21,20
sub_menu 30 : caption 30,"Menu Contextuel Memo 2" : parent 30,9 sub_menu 31 : caption 31,"sub_menu 31" : parent 31,30
on_mouse_move 0,cacher_pop_menu on_mouse_move 1,cacher_pop_menu on_mouse_move 2,cacher_pop_menu
END
cacher_pop_menu: objet_survole = number_mouse_move :' nouvelle commande off_mouse_move objet_survole ' if objet_survole<>last_objet_survole ' if number_click=0 then ClearAllPopMenu() : show 10 : show 11 :' Form 0 if number_click=1 then ClearAllPopMenu() : show 20 : show 21 :' Panel 1 if number_click=2 then ClearAllPopMenu() : show 30 : show 31 :' Memo 2 ' end_if last_objet_survole = objet_survole on_mouse_move objet_survole,cacher_pop_menu RETURN
SUB ClearAllPopMenu() for n%=1 to number_objects if object_exists(n%)=1 and object_type(n%)=13 then hide n% next n% END_SUB
| |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: cacher un MAIN_MENU_POP Sam 15 Juin 2019 - 16:22 | |
| @Jean-claude Et si, HIDE s'applique au SUB_MENU, c'est une coquille de l'aide. Ton code ne fonctionne pas car "number_click" ne renvoi un résultat que si "on_click" est déclaré pour un objet. Je pense que pour affecter un SUB_MENU "_POP" à chaque objet cliqué-droit, ça doit être plus facile en modifiant le code ci-dessous, pour Minibug @Minibug Une autre manière beaucoup plus simple de cacher un MAIN_MENU_POP: - Code:
-
' test_main_menu_pop.bas
label cacher_pop_menu,montrer_pop_menu dim MainMenuPop,i
panel 1 : top 1,10 : left 1,10 memo 2 : top 2,10 : left 2,250 panel 3 : top 3,150 : left 3,10 memo 4 : top 4,150 : left 4,250
' pour que ça fonctionne, les numéros des sub_menus du main_menu_pop doivent se suivre !!! MainMenuPop=10 main_menu_pop MainMenuPop i=MainMenuPop i=i+1 : sub_menu i : caption i,"Ligne 1" : parent i,MainMenuPop i=i+1 : sub_menu i : caption i,"Ligne 2" : parent i,MainMenuPop i=i+1 : sub_menu i : caption i,"Ligne 3" : parent i,MainMenuPop i=i+1 : sub_menu i : caption i,"#" : parent i,MainMenuPop : hide i :' jamais affiché, marque la fin des sub_menus du main_menu_pop
' cacher le main_menu_pop pour ces objets hide_menu_pop(1) hide_menu_pop(2)
END ' Ne s'applique qu'aux objets supportant: on_mouse_down, on_mouse_up cacher_pop_menu: off_mouse_down number_mouse_down off_mouse_up number_mouse_down mon_menu_pop(0) :' 0=cacher on_mouse_up number_mouse_down,montrer_pop_menu on_mouse_down number_mouse_down,cacher_pop_menu return
montrer_pop_menu: off_mouse_up number_mouse_up off_mouse_down number_mouse_up mon_menu_pop(1) :' 1=montrer on_mouse_down number_mouse_up,cacher_pop_menu on_mouse_up number_mouse_up,montrer_pop_menu return
sub hide_menu_pop(N) on_mouse_down N,cacher_pop_menu on_mouse_up N,montrer_pop_menu end_sub
sub mon_menu_pop(etat) dim_local i i=MainMenuPop+1 while caption$(i)<>"#" :' dernier sub_menu du main_menu_pop if etat=0 hide i else show i end_if i=i+1 end_while end_sub
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: cacher un MAIN_MENU_POP Sam 15 Juin 2019 - 18:52 | |
| Merci Sylverman, Effectivement number_click n'est pas adapté à la situation. Mais j'ai trouvé la solution pour faire un "PopMenu" personnalisé à un objet. C'est ce que Minibug recherche. dans le code ci-dessous, il suffit de tenir à jour la SUB ClearAllPopMenu() et le sous-programme AfiPopMenu: et bien sur d'affecter des ON_CLICK à chaque SUB_MENU pour le traitement - Code:
-
' test_main_menu_pop.bas
label AfiPopMenu dim n%
panel 1 : top 1,10 : left 1,10 memo 2 : top 2,10 : left 2,250
main_menu_pop 9 sub_menu 10 : caption 10,"Form 0 / Ligne 1" : parent 10,9 sub_menu 11 : caption 11,"Form 0 / Ligne 2" : parent 11,9
sub_menu 20 : caption 20,"Panel 1 / Ligne 1" : parent 20,9 sub_menu 21 : caption 21,"Panel 1 / Ligne 2" : parent 21,9
sub_menu 30 : caption 30,"Memo 2" : parent 30,9 sub_menu 31 : caption 31,"sub_menu 31" : parent 31,30 sub_menu 32 : caption 32,"sub_menu 32" : parent 32,30
on_mouse_down 0,AfiPopMenu on_mouse_down 1,AfiPopMenu on_mouse_down 2,AfiPopMenu
END
AfiPopMenu: ClearAllPopMenu() if mouse_right_down(0)=1 then show 10 : show 11 :' Form 0 if mouse_right_down(1)=1 then show 20 : show 21 :' Panel 1 if mouse_right_down(2)=1 then show 30 : show 31 : show 32 :' Memo 2 RETURN
SUB ClearAllPopMenu() hide 10 : hide 11 :' Form 0 hide 20 : hide 21 :' Panel 1 hide 30 : hide 31 : hide 32 :' Memo 2 END_SUB
A+ | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: cacher un MAIN_MENU_POP Sam 15 Juin 2019 - 19:39 | |
| Oui Jean Claude ! Ça ressemble de très prêt à ce que je recherche. Merci à tous pour vos tests et propositions. Cependant, j’espère que Jack pourra apporter une réponse à la façon de la fonction KGF de Klaus. ! | |
| | | Contenu sponsorisé
| Sujet: Re: cacher un MAIN_MENU_POP | |
| |
| | | | cacher un MAIN_MENU_POP | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |