MENU EN POPUP AVEC IMAGES SANS PASSER PAR LE CRÉATEUR DE MENUS DE VB [MODULE DE

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 24 juil. 2006 à 19:54
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 9 févr. 2011 à 07:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38745-menu-en-popup-avec-images-sans-passer-par-le-createur-de-menus-de-vb-module-de-classe

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 févr. 2011 à 07:15
Pas forcément indispensable, dépend des cas, je dirai.
cs_candyraton Messages postés 109 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 2 février 2012 3
9 janv. 2009 à 15:11
manquerait pas Set AfMenu = Nothing sur Frm_TitleBar.frm?
cs_Ouneufe Messages postés 60 Date d'inscription mardi 4 septembre 2001 Statut Membre Dernière intervention 19 janvier 2009
30 août 2007 à 17:25
Très bonne source, exactement ce que je recherchais. J'étais coincé car je ne pouvais utiliser convenablement le popupmenu classique avec feuille MDI+ feuilles filles.
odureux Messages postés 13 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 8 mai 2009
14 août 2007 à 19:08
Je crois que si on remet le caption, alors on a à nouveau la barre de titre, donc on peut à nouveau utiliser le créateur de menu ;-p
De toutes façons, ta classe reste utile quand on ne peut pas créer le menu à la création : création dynamique au moment de l'exécution quand par exemple on ne sait pas le nom ou le nombre des items, ...
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 août 2007 à 16:51
exact j'avais oublié mon comm ^^
cela dit on est alors obligé de supprimer le caption, or on peut en avoir besoin pour afficher la fenêtre dans la barre des tâches. bref en classe c'est toujours pratique non?
++ ;)
odureux Messages postés 13 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 8 mai 2009
14 août 2007 à 14:38
Je ne commentais pas ton source mais sa description : "seulement si la fenêtre est skinnée (sans barre de titre), en passant par le créateur de menus de VB on se retrouve avec soit la barre de titre, soit la barre de menu au dessus de la skin. un peu très moche...
on peut toujours passer par une 2e form hidden (...)".
Et ça marche surtout pour faire un popup (à moins de vouloir faire un menu invisible ;-)
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 août 2007 à 22:44
très utile ton commentaire... sur une source où le but est justement d'éviter de passer par le créateur de VB.
qui plus est le but ici est uniquement le popup donc pas vraiment de rapport mais l'astuce peut toujours servir, qui sait.

++
odureux Messages postés 13 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 8 mai 2009
13 août 2007 à 10:39
Pour info, il est possible de créer un menu contextuel avec le créateur de menus de VB6 sans qu'il y ait de barre de titre et sans que le menu apparaisse :
- créer le menu comme d'habitude avec le créateur de menu
- dans le créateur de menu, mettre le premier item du menu à invisible (décocher "visible") --> empêche que le menu apparaisse
- le créateur de menu fait réapparaître la bordure et le titre : remettre borderstyle à vbBSNone et caption à ""
Et tout rentre dans l'ordre ;-)
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
16 mai 2007 à 10:43
Salut PCPT,

Que dire...Que dire...Que ta source est cool et aussi que le le composant AfBtn est sympa...

A+
Exploreur
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 mai 2007 à 00:38
bien vu ;)

If Not ITB.oChild Is Nothing And aMenu(i).bEnabled Then

mis à jour, merci
Egyde Messages postés 158 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juillet 2007
16 mai 2007 à 00:11
Très bien tout ça!!

J'ai qd même trouvé un petit bug : les menus avec sous-menus ne sont pas désactivés par ModifyItem. Si tu veux par exemple désactiver l'item 104 de la feuille "Composé" (frm_sample), ça marche pas :

Private Sub Command1_Click()
AfMenuMain.ModifyItem 104, , , False
'<----- item 104 toujours actif
End Sub

Le problème semble venir de la création récursive des menus, qui ne doit pas être exécutée si le menu parent est "Disable" :

Public Sub Friend_RecursiveSubMenusMaker(ByRef ParentMenu As AfCls_PopupMenu)
....
'sous-menus?
If aMenu(i).bEnabled = True Then ' <--- à rajouter
If Not (ITB.oChild Is Nothing) Then
...
End If
End If
...
End Sub

++
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2006 à 00:11
une petite erreur (capture)... rien d'important, simple faute de frappe (Caption de l'Item)

j'attends vos comms ;)
++
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2006 à 00:05
bon, finalement j'ai quand même retouché à cette source, j'suis pas trop déçu du résultat, voir capture ;)

drakkard -> pas mal d'options, mais pas de changement en rapport à la typo.
tu peux ajouter une image en entête de ligne par exemple

++
cs_drakkard Messages postés 99 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 20 janvier 2009
11 oct. 2006 à 10:40
Bonne source, très claire,
rien à dire...
Dommage que l'on ne puisse pas avec cette méthode mettre les items en gras...
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 juil. 2006 à 09:32
voilà chose faite ;)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 juil. 2006 à 09:21
nop, rien de grave, pas d'inquiétude ^^

With pour trois...
dans l'absolu oui, ca rajoute des lignes, mais ca évite de trop manipuler les tableaux... VB n'a a trouver l'item (et verifier que l'index ne depasse pas, etc) qu'une fois.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 juil. 2006 à 09:17
salut Rey,
l'item vide est voulu pour ne pas avoir à tester l'existance de l'item 0. il en gène en rien puisqu'on teste bien que la valeur saisie soit entre 1 et ubound.
et comme on ne renvoi jamais 0, l'item 1 à donc l'indice 1.

(sauf pour) ModifyItem, petit oubli...
AddSepar, en effet ^^ (pas d'erreur pour autant)

with pour 3, çà rajoute 2 lignes pour rien tu crois pas...
je mets à jour de suite

ps : c'est souriant tes messages commençant par "Attention", on croierait presque qu'il y a vraiment quelquechose de grave :D
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 juil. 2006 à 08:20
Attention, PCPT, tu traine toujours un Item vide dans ton tableau
(tu pourrais par exemple, plutot maintenir un compteur du nombre d'items)

une petite utilisation de 'With' serait pas mal :
# aMenu(Index).sCaption = Caption
# aMenu(Index).bChecked = Checked
# aMenu(Index).bEnabled = Enabled

dans ModifyItem, rien ne m'empeche de spécifier un index bidon

tu pourrais faire :
Public Sub AddSeparator()
AddItem STR_SEPARATOR, False, True
End Sub
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
27 juil. 2006 à 23:51
desoler je n'avais pas vu ^^
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 juil. 2006 à 08:43
pas besoin de ce PS, DiablamanShadow :

PCPT a bien précisé qu'il s'agit de MDKK...
diablamanshadow Messages postés 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 janvier 2008
24 juil. 2006 à 20:58
ses pas mal comme source cependant perso quand je skin vu que ici tu en parle je skin de a à z je cree mes propres bouton , je code tt mon popupmenu mes propre menu etc etc etc donc ta source me sert pas trop mais je trouve sa pas mal du tout meme , meme si je n'utilise pas le meme system ^^
quelques roll over , des variable de stock de menu evidement je ne peux pas ajouter etc des menu "dynamiquement" comme toi mais bon je fais tt mon skin (je dit plutot design) sur mesure et en fonction de mon logiciel ^^

bon bah ta source est chouette je met un bon 8 car je trouve que celui qui utilise pas de border ses a la limite plus simple contrairement a ce que tu dit d'utiliser une autre form en hidden enfin chacun son opinion moi je trouve sa plus simple du moins si c'est pour garder le skin par defaut du menu "normale" ^^

ps: ses pas moi qui avais mis la note anonymement :p
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 juil. 2006 à 19:54
MDKK merci pour cette note "anonyme"...
c'est plus cher avec un commentaire?
Rejoignez-nous