Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créer popup logiquement ???

9 réponses
Avatar
LE TROLL
Bonjour :o)

Afin de gérer des libellés (de les mémoriser en fichier pour les
rappeler dès la première lettre saisie), ce qui évite de tout ressaisir, on
peut le faire avec un combo, mais moi je verrais bien un popup, sauf que je
ne sais pas s'il est possible de créer virtuellement des menus (comme si
c'était le générateur de menu qui les créait) , il est certain que je peux
créer 20 menus vides et les utiliser en fonction des besoins, mais bon, si
vous voyer comment créer des menus virtuellement ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

9 réponses

Avatar
parci
On 4 déc, 13:49, "LE TROLL" <le wrote:
        Bonjour :o)

    Afin de gérer des libellés (de les mémoriser en fichier pou r les
rappeler dès la première lettre saisie), ce qui évite de tout ressa isir, on
peut le faire avec un combo, mais moi je verrais bien un popup, sauf que je
ne sais pas s'il est possible de créer virtuellement des menus (comme s i
c'était le générateur de menu qui les créait) , il est certain qu e je peux
créer 20 menus vides et les utiliser en fonction des besoins, mais bon, si
vous voyer comment créer des menus virtuellement ???



Tu peux utiliser par exemple les Api CreatePopupMenu, AppendMenu,
TrackPopupMenu et DestroyMenu.
http://msdn.microsoft.com/en-us/library/ms674664(VS.85).aspx
Un petit exemple :
http://www.ex-designz.net/apidetail.asp?api_id$2
Avatar
Jacques93
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour :o)

Afin de gérer des libellés (de les mémoriser en fichier pour les
rappeler dès la première lettre saisie), ce qui évite de tout ressaisir, on
peut le faire avec un combo, mais moi je verrais bien un popup, sauf que je
ne sais pas s'il est possible de créer virtuellement des menus (comme si
c'était le générateur de menu qui les créait) , il est certain que je peux
créer 20 menus vides et les utiliser en fonction des besoins, mais bon, si
vous voyer comment créer des menus virtuellement ???




Les sous-menus, comme les groupes de contrôles peuvent être gérés de
façon dynamique. Avec le créateur de menu, tu crées un menu 'MenuTroll',
et tu mets sa propriété Visible = False, puis tu y crée un sous-menu
'sMenuTroll', ayant 0 pour Index, et - (signe moins) comme caption.

Ensuite au niveau du code, un petit prototype à adapter :

Option Explicit

Dim MenuCount

Private Sub Command1_Click()
MenuAdd
End Sub

Private Sub Command2_Click()
MenuRemove
End Sub

Private Sub MenuAdd()
MenuCount = MenuCount + 1
Load sMenuTroll(MenuCount)
sMenuTroll(MenuCount).Caption = "Sous-Menu " & MenuCount
End Sub

Private Sub MenuRemove()
Unload sMenuTroll(MenuCount)
MenuCount = MenuCount - 1
End Sub

Private Sub Form_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
If Button = vbRightButton And MenuCount > 0 Then
PopupMenu MenuTroll
End If
End Sub

Private Sub sMenuTroll_Click(Index As Integer)
MsgBox sMenuTroll(Index).Caption
End Sub


--

Cordialement,

Jacques.
Avatar
Driss HANIB
"j'ose" confirmer la proposition de jacques93 ;oO..
J'ai fait cela également
Tu crées donc dynamiquement tes menus.
Par contre ensuite si tu cliques dessus il faut que tu gère l'action menée
en fonction de l'index..
ça se fait..

Driss


"Jacques93" a écrit dans le message de news:
%
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour :o)

Afin de gérer des libellés (de les mémoriser en fichier pour les
rappeler dès la première lettre saisie), ce qui évite de tout ressaisir,
on peut le faire avec un combo, mais moi je verrais bien un popup, sauf
que je ne sais pas s'il est possible de créer virtuellement des menus
(comme si c'était le générateur de menu qui les créait) , il est certain
que je peux créer 20 menus vides et les utiliser en fonction des besoins,
mais bon, si vous voyer comment créer des menus virtuellement ???




Les sous-menus, comme les groupes de contrôles peuvent être gérés de façon
dynamique. Avec le créateur de menu, tu crées un menu 'MenuTroll', et tu
mets sa propriété Visible = False, puis tu y crée un sous-menu
'sMenuTroll', ayant 0 pour Index, et - (signe moins) comme caption.

Ensuite au niveau du code, un petit prototype à adapter :

Option Explicit

Dim MenuCount

Private Sub Command1_Click()
MenuAdd
End Sub

Private Sub Command2_Click()
MenuRemove
End Sub

Private Sub MenuAdd()
MenuCount = MenuCount + 1
Load sMenuTroll(MenuCount)
sMenuTroll(MenuCount).Caption = "Sous-Menu " & MenuCount
End Sub

Private Sub MenuRemove()
Unload sMenuTroll(MenuCount)
MenuCount = MenuCount - 1
End Sub

Private Sub Form_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
If Button = vbRightButton And MenuCount > 0 Then
PopupMenu MenuTroll
End If
End Sub

Private Sub sMenuTroll_Click(Index As Integer)
MsgBox sMenuTroll(Index).Caption
End Sub


--

Cordialement,

Jacques.


Avatar
Jacques93
Bonjour Driss HANIB,
Driss HANIB a écrit :
"j'ose" confirmer la proposition de jacques93 ;oO..



Merci du soutien, Driss, n'hésites pas à oser ;-)
Ceci dit je n'ai rien contre la proposition de Parci avec les Api's :-)

J'ai fait cela également
Tu crées donc dynamiquement tes menus.
Par contre ensuite si tu cliques dessus il faut que tu gère l'action menée
en fonction de l'index..
ça se fait..




D'autant plus que si j'ai bien compris, cela servirait à remplacer un
ComboBox, la propriété 'Caption' serait donc suffisante, sinon on peut
également se servir de la propriété Tag des sous-menus pour y stocker
des infos.

--

Cordialement,

Jacques.
Avatar
LE TROLL
Merci :o)

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
a écrit dans le message de news:

On 4 déc, 13:49, "LE TROLL" <le wrote:
Bonjour :o)

Afin de gérer des libellés (de les mémoriser en fichier pour les
rappeler dès la première lettre saisie), ce qui évite de tout ressaisir,
on
peut le faire avec un combo, mais moi je verrais bien un popup, sauf que
je
ne sais pas s'il est possible de créer virtuellement des menus (comme si
c'était le générateur de menu qui les créait) , il est certain que je peux
créer 20 menus vides et les utiliser en fonction des besoins, mais bon, si
vous voyer comment créer des menus virtuellement ???



Tu peux utiliser par exemple les Api CreatePopupMenu, AppendMenu,
TrackPopupMenu et DestroyMenu.
http://msdn.microsoft.com/en-us/library/ms674664(VS.85).aspx
Un petit exemple :
http://www.ex-designz.net/apidetail.asp?api_id$2
Avatar
LE TROLL
Merci :o)

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:
%
| Bonjour LE TROLL,
| LE TROLL a écrit :
| > Bonjour :o)
| >
| > Afin de gérer des libellés (de les mémoriser en fichier pour les
| > rappeler dès la première lettre saisie), ce qui évite de tout ressaisir,
on
| > peut le faire avec un combo, mais moi je verrais bien un popup, sauf que
je
| > ne sais pas s'il est possible de créer virtuellement des menus (comme si
| > c'était le générateur de menu qui les créait) , il est certain que je
peux
| > créer 20 menus vides et les utiliser en fonction des besoins, mais bon,
si
| > vous voyer comment créer des menus virtuellement ???
| >
|
| Les sous-menus, comme les groupes de contrôles peuvent être gérés de
| façon dynamique. Avec le créateur de menu, tu crées un menu 'MenuTroll',
| et tu mets sa propriété Visible = False, puis tu y crée un sous-menu
| 'sMenuTroll', ayant 0 pour Index, et - (signe moins) comme caption.
|
| Ensuite au niveau du code, un petit prototype à adapter :
|
| Option Explicit
|
| Dim MenuCount
|
| Private Sub Command1_Click()
| MenuAdd
| End Sub
|
| Private Sub Command2_Click()
| MenuRemove
| End Sub
|
| Private Sub MenuAdd()
| MenuCount = MenuCount + 1
| Load sMenuTroll(MenuCount)
| sMenuTroll(MenuCount).Caption = "Sous-Menu " & MenuCount
| End Sub
|
| Private Sub MenuRemove()
| Unload sMenuTroll(MenuCount)
| MenuCount = MenuCount - 1
| End Sub
|
| Private Sub Form_MouseDown(Button As Integer, _
| Shift As Integer, _
| X As Single, Y As Single)
| If Button = vbRightButton And MenuCount > 0 Then
| PopupMenu MenuTroll
| End If
| End Sub
|
| Private Sub sMenuTroll_Click(Index As Integer)
| MsgBox sMenuTroll(Index).Caption
| End Sub
|
|
| --
|
| Cordialement,
|
| Jacques.
Avatar
LE TROLL
Merci :o)

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Driss HANIB" a écrit dans le message de news:

| "j'ose" confirmer la proposition de jacques93 ;oO..
| J'ai fait cela également
| Tu crées donc dynamiquement tes menus.
| Par contre ensuite si tu cliques dessus il faut que tu gère l'action menée
| en fonction de l'index..
| ça se fait..
|
| Driss
|
|
| "Jacques93" a écrit dans le message de news:
| %
| > Bonjour LE TROLL,
| > LE TROLL a écrit :
| >> Bonjour :o)
| >>
| >> Afin de gérer des libellés (de les mémoriser en fichier pour les
| >> rappeler dès la première lettre saisie), ce qui évite de tout
ressaisir,
| >> on peut le faire avec un combo, mais moi je verrais bien un popup, sauf
| >> que je ne sais pas s'il est possible de créer virtuellement des menus
| >> (comme si c'était le générateur de menu qui les créait) , il est
certain
| >> que je peux créer 20 menus vides et les utiliser en fonction des
besoins,
| >> mais bon, si vous voyer comment créer des menus virtuellement ???
| >>
| >
| > Les sous-menus, comme les groupes de contrôles peuvent être gérés de
façon
| > dynamique. Avec le créateur de menu, tu crées un menu 'MenuTroll', et tu
| > mets sa propriété Visible = False, puis tu y crée un sous-menu
| > 'sMenuTroll', ayant 0 pour Index, et - (signe moins) comme caption.
| >
| > Ensuite au niveau du code, un petit prototype à adapter :
| >
| > Option Explicit
| >
| > Dim MenuCount
| >
| > Private Sub Command1_Click()
| > MenuAdd
| > End Sub
| >
| > Private Sub Command2_Click()
| > MenuRemove
| > End Sub
| >
| > Private Sub MenuAdd()
| > MenuCount = MenuCount + 1
| > Load sMenuTroll(MenuCount)
| > sMenuTroll(MenuCount).Caption = "Sous-Menu " & MenuCount
| > End Sub
| >
| > Private Sub MenuRemove()
| > Unload sMenuTroll(MenuCount)
| > MenuCount = MenuCount - 1
| > End Sub
| >
| > Private Sub Form_MouseDown(Button As Integer, _
| > Shift As Integer, _
| > X As Single, Y As Single)
| > If Button = vbRightButton And MenuCount > 0 Then
| > PopupMenu MenuTroll
| > End If
| > End Sub
| >
| > Private Sub sMenuTroll_Click(Index As Integer)
| > MsgBox sMenuTroll(Index).Caption
| > End Sub
| >
| >
| > --
| >
| > Cordialement,
| >
| > Jacques.
|
|
Avatar
LE TROLL
Merci Jack, c'est exactement le principe que je voulais, mais je vais
l'utiliser par un bouton et mettre les libellés par fichier, tu as aussi
oublié de piéger si index = 0 (détail), pareil pour la variable menuCount,
non typée, quand 0, elle présentait un vide, je l'ai typé long.
Merci encore, cordialement :o)


------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:
%
| Bonjour LE TROLL,
| LE TROLL a écrit :
| > Bonjour :o)
| >
| > Afin de gérer des libellés (de les mémoriser en fichier pour les
| > rappeler dès la première lettre saisie), ce qui évite de tout ressaisir,
on
| > peut le faire avec un combo, mais moi je verrais bien un popup, sauf que
je
| > ne sais pas s'il est possible de créer virtuellement des menus (comme si
| > c'était le générateur de menu qui les créait) , il est certain que je
peux
| > créer 20 menus vides et les utiliser en fonction des besoins, mais bon,
si
| > vous voyer comment créer des menus virtuellement ???
| >
|
| Les sous-menus, comme les groupes de contrôles peuvent être gérés de
| façon dynamique. Avec le créateur de menu, tu crées un menu 'MenuTroll',
| et tu mets sa propriété Visible = False, puis tu y crée un sous-menu
| 'sMenuTroll', ayant 0 pour Index, et - (signe moins) comme caption.
|
| Ensuite au niveau du code, un petit prototype à adapter :
|
| Option Explicit
|
| Dim MenuCount
|
| Private Sub Command1_Click()
| MenuAdd
| End Sub
|
| Private Sub Command2_Click()
| MenuRemove
| End Sub
|
| Private Sub MenuAdd()
| MenuCount = MenuCount + 1
| Load sMenuTroll(MenuCount)
| sMenuTroll(MenuCount).Caption = "Sous-Menu " & MenuCount
| End Sub
|
| Private Sub MenuRemove()
| Unload sMenuTroll(MenuCount)
| MenuCount = MenuCount - 1
| End Sub
|
| Private Sub Form_MouseDown(Button As Integer, _
| Shift As Integer, _
| X As Single, Y As Single)
| If Button = vbRightButton And MenuCount > 0 Then
| PopupMenu MenuTroll
| End If
| End Sub
|
| Private Sub sMenuTroll_Click(Index As Integer)
| MsgBox sMenuTroll(Index).Caption
| End Sub
|
|
| --
|
| Cordialement,
|
| Jacques.
Avatar
Jacques93
Bonjour LE TROLL,
LE TROLL a écrit :
Merci Jack, c'est exactement le principe que je voulais, mais je vais
l'utiliser par un bouton et mettre les libellés par fichier, tu as aussi
oublié de piéger si index = 0 (détail), pareil pour la variable menuCount,
non typée, quand 0, elle présentait un vide, je l'ai typé long.
Merci encore, cordialement :o)





De rien :-)

Pour l'index, c'était volontaire, ne sachant pas exactement le
comportement désiré, et aussi question de temps !
Par contre pour le typage de MenuCount, c'est un oubli, je devais penser
à autre chose.

J'essaierai de faire mieux la prochaine fois ;-)

--

Cordialement,

Jacques.