Forum Liberty Basic France
• Index
Bonjour !
Savez-vous comment mettre des sous-menu dans un "popupmenu" ?
J'explique : j'obtiens mon popupmenu en faisant click droit (c'est mon programme qui le fait), et je voudrais, dans ce popupmenu, mettre des "sous-menu", avec les petites flèches noires à droite, si vous voyez ce que je veux dire :-)
Je peux le faire sans problème avec les "vrais" menus qui proviennent de la "menu bar", car ceux-là ont un numéro et on peut obtenir leur handle. Mais comment obtenir le handle et le numéro (s'il en a un) du popupmenu ?
Ou alors, ça fonctionne tout-à-fait autrement que pour les menus "normaux" ?
Merci de vos lumières !
1180michel
Savez-vous comment mettre des sous-menu dans un "popupmenu" ?
J'explique : j'obtiens mon popupmenu en faisant click droit (c'est mon programme qui le fait), et je voudrais, dans ce popupmenu, mettre des "sous-menu", avec les petites flèches noires à droite, si vous voyez ce que je veux dire :-)
Je peux le faire sans problème avec les "vrais" menus qui proviennent de la "menu bar", car ceux-là ont un numéro et on peut obtenir leur handle. Mais comment obtenir le handle et le numéro (s'il en a un) du popupmenu ?
Ou alors, ça fonctionne tout-à-fait autrement que pour les menus "normaux" ?
Merci de vos lumières !
1180michel
aucune idée XD
tu peux mettre le code qu'on puisse faire des test ?
tu peux mettre le code qu'on puisse faire des test ?

Heu... Merci, mais le prog fait 33000 lignes, et ne pourrait pas marcher "comme ça".
Je vais tâcher d'en extraire quelque chose de pa
Je vais tâcher d'en extraire quelque chose de pa
Heu... Merci, mais le prog fait 33000 lignes, et ne pourrait pas marcher "comme ça".
Je vais tâcher d'en extraire quelque chose de parlant (désolé, le message précédent s'est posté tout seul, j'avais pas fini !
A+
Je vais tâcher d'en extraire quelque chose de parlant (désolé, le message précédent s'est posté tout seul, j'avais pas fini !
A+
1180michel:
Tu peux le zipper et le mettre dans ton espace de stockage (sauf si c'est pour la NASA, of course).
Pour faire: Ton profil (en haut à gauche)/Gestion des Fichiers/Ajouter un fichier (à droite); ça t'envoie dans l'explorateur Windows/clic sur ton zip/ouvrir/et "Uploader" (en bas de page).
Puis, dans le message: Clic sur le nuage (au dessus de la fenêtre du msg et à droite); ça t'envoie dans ton espace de stockage; clic sur la flèche (sous le zip).
Heu... Merci, mais le prog fait 33000 lignes, et ne pourrait pas marcher "comme ça".
Je vais tâcher d'en extraire quelque chose de parlant (désolé, le message précédent s'est posté tout seul, j'avais pas fini !
A+
Je vais tâcher d'en extraire quelque chose de parlant (désolé, le message précédent s'est posté tout seul, j'avais pas fini !
A+
Tu peux le zipper et le mettre dans ton espace de stockage (sauf si c'est pour la NASA, of course).
Pour faire: Ton profil (en haut à gauche)/Gestion des Fichiers/Ajouter un fichier (à droite); ça t'envoie dans l'explorateur Windows/clic sur ton zip/ouvrir/et "Uploader" (en bas de page).
Puis, dans le message: Clic sur le nuage (au dessus de la fenêtre du msg et à droite); ça t'envoie dans ton espace de stockage; clic sur la flèche (sous le zip).
____________________
Roro
Roro
Hello ! (un petit bonjour en passant, parce que je me fais rare, volontairement rare pour cause d'addiction au Basic, et que je ne vois pas le temps passer quand j'ai le malheur de mettre le nez dedans
)
Je n'ai pas fait mieux que mes collègues du forum, l'aide ne parle pas de sous-menu dans les popupmenus, j'ai bien peur qu'on ne puisse utiliser qu'un seul niveau de menu...
Au mieux, je fais pointer un popupmenu sur un autre popupmenu, ça marche, mais ça n'a pas la fluidité d'un vrai sous-menu de popupmenu. D'après l'exemple fourni dans l'aide :
Code VB :

Je n'ai pas fait mieux que mes collègues du forum, l'aide ne parle pas de sous-menu dans les popupmenus, j'ai bien peur qu'on ne puisse utiliser qu'un seul niveau de menu...
Au mieux, je fais pointer un popupmenu sur un autre popupmenu, ça marche, mais ça n'a pas la fluidité d'un vrai sous-menu de popupmenu. D'après l'exemple fourni dans l'aide :
Code VB :
nomainwin open "Geometric White-board" for graphics_nsb as #geo print #geo, "trapclose [quit]" print #geo, "when rightButtonUp [popupMenu]" wait ' stop and wait for a menu item to be chosen [popupMenu] popupmenu "&Spirale carrée", [sousPopupMenu1], _ "&Spirale rectangulaire", [sousPopupMenu2] wait [sousPopupMenu1] 'carré popupmenu "&Rouge", [rouge], _ "&Vert", [vert] wait [sousPopupMenu2] 'triangle popupmenu "&Bleu", [bleu], _ "&Gris", [gris] wait [rouge] g$="red":gosub [asSquare]:wait [vert] g$="green":gosub [asSquare]:wait [bleu] g$="blue":gosub [asTriangle]:wait [gris] g$="darkgray":gosub [asTriangle]:wait [asSquare] print #geo, "cls ; home ; down ; color ";g$ for x = 1 to 120 print #geo, "go "; x; " ; turn 87" next x wait [asTriangle] print #geo, "cls ; home ; down ; color ";g$ for x = 1 to 120 print #geo, "go "; x; " ; turn 117" next x wait [quit] close #geo end
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
Les codes que je poste font parfois 10-20k lignes
la taille n'est pas importante il faut faire des tests pour comprendre et aider. Ici on aide on vole pas les codes


Hello Atomose,
Je suis également de cet avis. On emporte rien.
J’ai beaucoup reçu de conseils et explications et pour cela j’ai posté
Ce que je faisait pour les recevoir.
Si les secrets étaient de mise, on avancerait pas beaucoup.
Je suis également de cet avis. On emporte rien.
J’ai beaucoup reçu de conseils et explications et pour cela j’ai posté
Ce que je faisait pour les recevoir.
Si les secrets étaient de mise, on avancerait pas beaucoup.
____________________
Castel
Castel
Certes... Je ne suis pas si convaincu que ça qu'il faille étudier l'intégralité du code pour répondre à la question "peut-on avoir des sous-menus dans un popupmenu ?", j'voudrais pas dire, hein, mais ça a, comme qui dirait, pas grand chose à voir l'un avec l'autre et l'autre avec l'un 
En ce qui concerne la confidentialité, du moment que le forum est public, n'importe quel quidam peut se servir. Et même, sans vouloir faire le cachottier, on n'a pas forcément envie de divulguer des travaux personnels, même si ce serait, en effet, formateur d'étudier les programmes des autres et de comparer avec nos propres méthodes. Au risque d'oublier la question initiale et de pratiquer le hors-sujet.
Enfin, voilà, ce que j'en pense... Pour la question qui nous intéresse ici, pas besoin du code

En ce qui concerne la confidentialité, du moment que le forum est public, n'importe quel quidam peut se servir. Et même, sans vouloir faire le cachottier, on n'a pas forcément envie de divulguer des travaux personnels, même si ce serait, en effet, formateur d'étudier les programmes des autres et de comparer avec nos propres méthodes. Au risque d'oublier la question initiale et de pratiquer le hors-sujet.
Enfin, voilà, ce que j'en pense... Pour la question qui nous intéresse ici, pas besoin du code

____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
Moi je n'aide pas ceux qui ne partagent pas leur code, ne serais-ce qu'en mp.
C'est ma philosophie.
Et de toutes façons, utiliser les popup's est une absurdité de fainéant.
C'est ma philosophie.
Et de toutes façons, utiliser les popup's est une absurdité de fainéant.
____________________
Roro
Roro
Ce n'est pas une attitude très cool envers un lecteur qui n'a aucune idée des idées réciproques et mutuelles des uns envers les autres sur le forum, et qui vient uniquement dans le but technique de parfaire ses connaissances en JB/LB.
Comme nous avons tous pas mal dérivé, mon état de modérateur trouve qu'il serait sympathique et bienvenu de ramener la discussion à son thème initial, et rien qu'à lui : "peut-on faire un popupmenu contenant des sous-menu ?"
Voili
Comme nous avons tous pas mal dérivé, mon état de modérateur trouve qu'il serait sympathique et bienvenu de ramener la discussion à son thème initial, et rien qu'à lui : "peut-on faire un popupmenu contenant des sous-menu ?"
Voili

____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
Citation:
Ce qui n'est pas cool c'est de demander de l'aide sans partager son code, même pas en mp.
Je me demande ce qui me retient de virer carrément le "pas cool".
Ce n'est pas une attitude très cool envers un lecteur
Ce qui n'est pas cool c'est de demander de l'aide sans partager son code, même pas en mp.
Je me demande ce qui me retient de virer carrément le "pas cool".
____________________
Roro
Roro
Roland:
Et moi, je me demande ce qui me retient de verrouiller carrément la discussion. Je parle du lecteur intéressé par la question et surtout par sa réponse, et qui n'y est pour rien dans les querelles entre contributeurs.
Par ailleurs, la question posée n'ayant aucun rapport avec un problème de programmation qui nécessiterait de publier le code pour obtenir de l'aide, il n'y avait aucune raison de fournir un code.
Ce qui n'est pas cool c'est de demander de l'aide sans partager son code, même pas en mp.
Je me demande ce qui me retient de virer carrément le "pas cool".
Je me demande ce qui me retient de virer carrément le "pas cool".
Et moi, je me demande ce qui me retient de verrouiller carrément la discussion. Je parle du lecteur intéressé par la question et surtout par sa réponse, et qui n'y est pour rien dans les querelles entre contributeurs.
Par ailleurs, la question posée n'ayant aucun rapport avec un problème de programmation qui nécessiterait de publier le code pour obtenir de l'aide, il n'y avait aucune raison de fournir un code.
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
*** L'avis du Modo ***
J'interviens ici avec la casquette de modérateur, mon avis personnel ne compte pas.
Il y a trop de hors-sujet dans cette conversation, et quelques propos désagréables. Avant de poster nos prochaines réponses, je ne saurais trop nous conseiller de vérifier (et je dis "nous" parce que ça s'adresse aussi à moi) que ces réponses se réfèrent bien à la question posée, qu'elles ne sont pas des réactions "à chaud" à des propos qui ne sont pas l'objet de la discussion.
Ainsi, près de 90% du texte de la présente discussion n'a rien à voir avec son thème, et aurait dû se trouver dans une discussion dédiée à l'utilité de fournir un code. Et là, ceux qui sont intéressés auraient fourni un lien vers cette discussion, ceux qui voulaient répondre auraient utilisé ce lien, et laissé libre la discussion sur le popupmenu. Si chacun y va de sa petite intervention en oubliant le thème de la discussion, le forum va vite devenir un sacré foutoir.
*** fin de l'avis du modo qui n'est pas si modo que ça mais que quand faut y aller, faut y aller ***
J'interviens ici avec la casquette de modérateur, mon avis personnel ne compte pas.
Il y a trop de hors-sujet dans cette conversation, et quelques propos désagréables. Avant de poster nos prochaines réponses, je ne saurais trop nous conseiller de vérifier (et je dis "nous" parce que ça s'adresse aussi à moi) que ces réponses se réfèrent bien à la question posée, qu'elles ne sont pas des réactions "à chaud" à des propos qui ne sont pas l'objet de la discussion.
Ainsi, près de 90% du texte de la présente discussion n'a rien à voir avec son thème, et aurait dû se trouver dans une discussion dédiée à l'utilité de fournir un code. Et là, ceux qui sont intéressés auraient fourni un lien vers cette discussion, ceux qui voulaient répondre auraient utilisé ce lien, et laissé libre la discussion sur le popupmenu. Si chacun y va de sa petite intervention en oubliant le thème de la discussion, le forum va vite devenir un sacré foutoir.
*** fin de l'avis du modo qui n'est pas si modo que ça mais que quand faut y aller, faut y aller ***
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
Christophe, tu me gonfle.
____________________
Roro
Roro
Oui, je sais, et c'est pour ça qu'on s'aime bien 
Bonne journée tout le monde, et ne vous prenez pas la tête, c'est dimanche. Je ferme la discussion à la prochaine intervention qui ne parle pas du popupmenu.
à+, donc.

Bonne journée tout le monde, et ne vous prenez pas la tête, c'est dimanche. Je ferme la discussion à la prochaine intervention qui ne parle pas du popupmenu.
à+, donc.
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
le problème c'est qu'on veut bien aider mais si on a rien sur quoi travailler on va pas aller loin. Ne pas partager son code entier s'il veut le vendre plus tard il a le droit mais au moins le bout en question pck pour répondre a la question initiale il faut faire des test, proposer des bouts de code...
Bon pour essayer de répondre a la question je pense pas que ce soit possible directement.
Sur mon jeu ascension, j'ai fait un menu déroulant. Peut être que c'est ce qui s'en rapproche le plus ... c'est juste une cascade de bmp qui sen brique avec une interdiction d'action en dehors de son champs. Ca permet d'avoir un menu puis un ou plusieurs sous menu avec la fenêtre du style que l'on veut.
Si c'est pas ca faudrait être plus précis sur ce qui est demandé
Bon pour essayer de répondre a la question je pense pas que ce soit possible directement.
Sur mon jeu ascension, j'ai fait un menu déroulant. Peut être que c'est ce qui s'en rapproche le plus ... c'est juste une cascade de bmp qui sen brique avec une interdiction d'action en dehors de son champs. Ca permet d'avoir un menu puis un ou plusieurs sous menu avec la fenêtre du style que l'on veut.
Si c'est pas ca faudrait être plus précis sur ce qui est demandé


Bonjour à Tous,
Voici ma modeste contribution au sujet des menus déroulants.
Si ça peut intéresser .... Bien volontiers !
Avec ce principe on peut faire également des sous-menus, etc ...
Utiliser les touches flèches de direction.
On peut également programmer d'autres touches.
OldStyleMenu.zip
Voici ma modeste contribution au sujet des menus déroulants.
Si ça peut intéresser .... Bien volontiers !
Avec ce principe on peut faire également des sous-menus, etc ...
Utiliser les touches flèches de direction.
On peut également programmer d'autres touches.
OldStyleMenu.zip
____________________
Castel
Castel
Bonjour et merci à ceux qui m'ont apporté leur réponse.
C'est totalement inutile que je vous envoie mon programme, il ne marchera pas. C'est un programme de navigation (maritime) qui nécessite d'installer des dizaines de fichiers, dll, etc qui sont dans des répertoires particuliers à mon PC. Entre faire un programme pour soi et faire un programme qui s'adapte à toutes les configurations, il y a un monde...
Mais pour ceux que ça intéresse, voici un petit programme qui explique ce que je veux. Programme trouvé dans la nombreuse doc sur LB (merci à l'auteur Jim Brossman) et un peu modifié.
Bonne journée à vous.
Code VB :
C'est totalement inutile que je vous envoie mon programme, il ne marchera pas. C'est un programme de navigation (maritime) qui nécessite d'installer des dizaines de fichiers, dll, etc qui sont dans des répertoires particuliers à mon PC. Entre faire un programme pour soi et faire un programme qui s'adapte à toutes les configurations, il y a un monde...
Mais pour ceux que ça intéresse, voici un petit programme qui explique ce que je veux. Programme trouvé dans la nombreuse doc sur LB (merci à l'auteur Jim Brossman) et un peu modifié.
Bonne journée à vous.
Code VB :
'Cascading Menu Demo - Jim Brossman nomainwin WindowWidth = 600 : WindowHeight = 300 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) 'These are the menu items that will be modified to have cascading menus added. 'The label [anybranch] must be in the menu but does not need to be defined. 'You can't leave it blank. menu #main, " &Names ",_ "Edit Names", [anybranch],_ 'Menu #0 "&Print Names", [PrintNames],_ "Find Duplicate",[anybranch] menu #main, " &Address ", "&Edit Address", [EditAdd] 'Menu #1 menu #main, " &Tools ", "Sub Menu 1",_ 'Menu #2 [SubMenu1],"Sub Menu 2", [SubMenu2],_ "Sub Menu 3", [anybranch] 'These will be the sub menus that modify the above menus and 'add the cascading menus. menu #main, "&Edit Names","&Add",[Add],"&Change",[Chg],_ 'Menu #3 "&Delete",[Del] menu #main, "&Find Duplicate", "&Names", [FindDupNames],_ 'Menu #4 "&Addresses", [FindAdds] menu #main, "&Sub Menu 1", "&Top", [Top], "&Middle", [Middle],_ 'Menu #5 "&Bottom", [Bottom] menu #main, "&Sub Menu 2", "&First", [First], "&Second", [Second],_ 'Menu #6 "&Third", [Third] menu #main, "&Sub Menu 3", "&One", [One], "&Two", [Two],_ 'Menu #7 "T&hree", [Three] 'These is another menu items that will not be modified. menu #main, " &Help ", "&Help File", [HelpFile],_ 'Menu #8 "Help &About", [HelpAbout] open "Cascading Menu Demo" for graphics as #main #main,"when rightButtonUp [popup]" print #main, "trapclose [Quit]" 'wait 'Unremark this line to see all menus in the window. 'Get handles of the main window, window menu and sub menus. hMain=HWnd(#main)'Handle of main window CallDLL #user32,"GetParent",hMain AS word,hParent AS word ' CallDll #user,"GetMenu",_ 'Get the handle of the window menu into hMenu calldll #user32, "GetMenu",hParent as ulong,hMenu as ulong 'Get the handles of the sub menus from hMenu using the Menu # 'and put the handle into hnames, htools, heditnames etc. 'We are going to modify menu #0 with menu #3 and #4 'and menu #2 with menus #5, 6 and 7. calldll #user32, "GetSubMenu",hMenu as ulong,_ 0 as long,h0 as ulong 'Get handle of the Names menu #0 calldll #user32, "GetSubMenu",hMenu as ulong,_ 2 as long,h2 as ulong 'Get handle of the Tools menu #2 calldll #user32, "GetSubMenu",hMenu as ulong,_ 3 as long,h3 as ulong 'Get handle of Edit Names menu #3 calldll #user32, "GetSubMenu",hMenu as ulong,_ 4 as long,h4 as ulong 'Get handle of Find Duplicate menu #4 calldll #user32, "GetSubMenu",hMenu as ulong,_ 5 as long,h5 as ulong 'Get handle of Sub Menu 1 menu #5 calldll #user32, "GetSubMenu",hMenu as ulong,_ 6 as long,hsubmenu2 as ulong 'Get handle of Sub Menu 2 menu #6 calldll #user32, "GetSubMenu",hMenu as ulong,_ 7 as long,hsubmenu3 as ulong 'Get handle of Sub Menu 3 menu #7 'Modify the submenus to add the cascading menus. 'To modify a sub menu you need the handle of the menu item from the above lines, 'the the sub menu position under the menu item, 'the handle of the sub menu to make that will make the change, 'and the new name of the sub menu. call MenuMod h0, 0, h3, "&Edit Names" call MenuMod h0, 2, h4, "&Find Duplicate" call MenuMod h2, 0, h5, "Sub Menu &1" call MenuMod htools, 1, hsubmenu2, "Sub Menu &2" call MenuMod htools, 2, hsubmenu3, "Sub Menu &3" 'Remove all the cascading sub menus now that they have replaced the 'original ones because they still remain in the window menu. 'Remove in reverse order or numbers will be wrong because if you 'remove 3 first, #4 becomes #3, #5 becomes #4 etc. for x=7 to 3 step -1 call MenuRemove hMenu, x next 'You must redraw the menu bar for all the changes to take effect. calldll #user32, "DrawMenuBar", hMain as ulong, result as long notice "En cliquant sur les menus, vous voyez les menus cascadés, avec les petites flèches noires" notice "Avec click droit, vous voyez un menu popup. C'est celui-là que je voudrais cascader aussi..." wait 'Sub to modify the sub menus and add the cascading menu. sub MenuMod hmainmenu, position, hsubmenu, pointer$ flags = _MF_BYPOSITION Or _MF_POPUP Or _MF_STRING calldll #user32, "ModifyMenuA",_ hmainmenu as ulong,_ 'Handle of the menu to be modified position as long,_ 'position of the sub menu under the menu flags as long,_ ' change using the position number hsubmenu as ulong,_ 'hendle of sub menu to change pointer$ as ptr,_ 'new name of the sub menu result as long end sub 'Sub to remove cascading menus no longer needed. sub MenuRemove hmainmenu, position calldll #user32, "RemoveMenu",hmainmenu as ulong,_ 'handle of window menu position as long,_MF_BYPOSITION as long,_ 'Menu # of original cascading menu. result as long end sub 'These branches are here so the program doesn't crash if 'you select a menu item. [Add] a$="Add": gosub [Notify]:wait [Chg] a$="Change": gosub [Notify]:wait [Del] a$="Delete": gosub [Notify]:wait [PrintNames] a$="Print Names": gosub [Notify]:wait [EditAdd] a$="Edit Addresses": gosub [Notify]:wait [FindDupNames] a$="Find Duplicate Names": gosub [Notify]:wait [FindAdds] a$="Find Duplicate Adresses": gosub [Notify]:wait [Top] a$="Top": gosub [Notify]:wait [Middle] a$="Middle": gosub [Notify]:wait [Bottom] a$="Bottom": gosub [Notify]:wait [First] a$="First": gosub [Notify]:wait [Second] a$="Second": gosub [Notify]:wait [Third] a$="Third": gosub [Notify]:wait [One] a$="One": gosub [Notify]:wait [Two] a$="Two": gosub [Notify]:wait [Three] a$="Three": gosub [Notify]:wait [HelpFile] a$= "Help File": gosub [Notify]:wait [HelpAbout] a$= "Help Aboute": gosub [Notify]:wait [Quit] close #main end [Notify] Notice "You have selected "+a$:return [Notifys]' Notice "You have selected popupmenu" wait [popup]' popupmenu "Menupopup1",[Notifys],_ "Menupopup2",[Notifys],_ "Menupopup3",[Notifys] wait
Voilà qui est bien; on sait au moins de quoi on parle.
Pourquoi ne fais-tu pas avec les menus, qui cascadent très bien ?
Pourquoi ne fais-tu pas avec les menus, qui cascadent très bien ?
____________________
Roro
Roro
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie