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

Menu + index

7 réponses
Avatar
Nicolas
Bonjour,

Je voudrais cr=E9er un menu mais de mani=E8re index=E9e

Par exemple

Fichier
->Ouvrir
->Enregistrer
->Quitter

Comment par exemple afficher le libell=E9 du 2nd sous menu ?=20
(Enregistrer) sans passer par la propri=E9t=E9 Name (qu'on a=20
donn=E9e dans l'=E9diteur de menu) mais en passant par un truc=20
du genre Variable.Index(2).Caption ?

Merci

Nicolas

7 réponses

Avatar
Pascal B.
Dans l'éditeur de menu,
tu donnes le même "Name" à chaque sous-menu,
mais tu leurs donne un "Index" différent.

Exemple:

"Caption:" "Name:" "Index:"
Ouvrir SousMenu 1
Enregistrer SousMenu 2
Quitter SousMenu 3

Ton code pourra être alors:

Dim MonText as String

MonText = SousMenu(2).Caption


Pascal


"Nicolas" a écrit dans le message de
news:097801c3dc1c$39fd4340$
Bonjour,

Je voudrais créer un menu mais de manière indexée

Par exemple

Fichier
->Ouvrir
->Enregistrer
->Quitter

Comment par exemple afficher le libellé du 2nd sous menu ?
(Enregistrer) sans passer par la propriété Name (qu'on a
donnée dans l'éditeur de menu) mais en passant par un truc
du genre Variable.Index(2).Caption ?

Merci

Nicolas
Avatar
Nicolas
Merci pour ta réponse.

A présent, cas suivant : j'ai plusieurs menus avec chacuns
plusieurs sous menus, exemple :

Fichier Edition
- Ouvrir - Couper
- Enregistrer - Copier
- Quitter - Coller

Comment créer le sous menu Copier ?

sachant que j'ai crée 2 top menus mnuTop(1) et mnuTop(2)
je voudrais créer un mnuSub(Index) valable par tous les
sous menus

Comment faire ?

Merci

Nicolas
Avatar
ng
Salut,
La création de sous-menus n'est pas evidente sous VB, on peut le faire par
API mais cela dépend ce que tu veux faire... Pourquoi ne pas les créer avec
l'éditeur de menu de VB ?

Ou tout simplement creer juste les menus principaux contenant chacun un sous
menu d'index 0 afin de pouvoir en charger davantage par le code ?

--
Nicolas.
http://www.ngsoft-fr.com
"Nicolas" a écrit dans le message de news:
08f501c3dc22$ce311db0$
Merci pour ta réponse.

A présent, cas suivant : j'ai plusieurs menus avec chacuns
plusieurs sous menus, exemple :

Fichier Edition
- Ouvrir - Couper
- Enregistrer - Copier
- Quitter - Coller

Comment créer le sous menu Copier ?

sachant que j'ai crée 2 top menus mnuTop(1) et mnuTop(2)
je voudrais créer un mnuSub(Index) valable par tous les
sous menus

Comment faire ?

Merci

Nicolas
Avatar
Nicolas
En fait mon objectif est de faire une appli multi langue

J'ai donc un fichier texte contenant les informations
suivantes par exemple :

1 0 Fichier
1 1 Ouvrir
1 2 Enregistrer
1 3 -
1 4 Quitter
2 0 Edition
2 1 Couper
2 2 Copier
2 3 Coller

etc etc

et un autre fichier où j'aurais l'équivalent en anglais

Donc au final, je charge le fichier texte et je remplis
mon menu avec les infos contenues dedans.

Voilà

Nicolas
Avatar
Daniel AUBRY
Pour faire une appli multi langue je te conseille vivement
d'utiliser un fichier de ressources.
C'est fait pour cela et cela marche très bien.

Daniel


www.daniel-aubry.com
"Nicolas" a écrit dans le message de news:
07ea01c3dc28$e635e480$
En fait mon objectif est de faire une appli multi langue

J'ai donc un fichier texte contenant les informations
suivantes par exemple :

1 0 Fichier
1 1 Ouvrir
1 2 Enregistrer
1 3 -
1 4 Quitter
2 0 Edition
2 1 Couper
2 2 Copier
2 3 Coller

etc etc

et un autre fichier où j'aurais l'équivalent en anglais

Donc au final, je charge le fichier texte et je remplis
mon menu avec les infos contenues dedans.

Voilà

Nicolas
Avatar
ng
Dans ce cas pourquoi ne pas utiliser ton fichier de langue simplement pour
changer les captions ?

Tu créés tes menus avec le créateur VB, tu peux par exemple directement les
mettre en FR ou mettre des "#"... puis charger tes MonMenu(Index).Caption
depuis ton fichier....

--
Nicolas.
http://www.ngsoft-fr.com
"Nicolas" a écrit dans le message de news:
07ea01c3dc28$e635e480$
En fait mon objectif est de faire une appli multi langue

J'ai donc un fichier texte contenant les informations
suivantes par exemple :

1 0 Fichier
1 1 Ouvrir
1 2 Enregistrer
1 3 -
1 4 Quitter
2 0 Edition
2 1 Couper
2 2 Copier
2 3 Coller

etc etc

et un autre fichier où j'aurais l'équivalent en anglais

Donc au final, je charge le fichier texte et je remplis
mon menu avec les infos contenues dedans.

Voilà

Nicolas
Avatar
Zoury
Salut! :O)

Pour faire une appli multi langue je te conseille vivement
d'utiliser un fichier de ressources.



Yep!


Voici un exemple :
'***
' Form1
' Créer le menu spécifié dans l'entête..
' Créer le fichier de ressources spécifié
Option Explicit

'Structure du menu du formulaire Form1
'---------------------------------------------------
'Name Caption MenuParent
'---------------------------------------------------
'mnuFichier 1100 [none]
'mnuFichierNouveau 1101 mnuFichier
'mnuFichierOuvrir 1102 mnuFichier
'mnuFichierQuitter 1103 mnuFichier
'mnuEdition 1200 [none]
'mnuEditionRechercher 1201 mnuEdition
'mnuEditionRemplacer 1202 mnuEdition

'Contenu du fichier ressources : Project1.res
'---------------------------------------------------
'ID French (Canada) English (Canada)
'---------------------------------------------------
'0 [Étiquette manquante] [Caption missing]
'1100 &Fichier &File
'1101 &Nouveau &New
'1102 &Ouvrir... &Open...
'1103 &Quitter &Quit
'1200 &Edition &Edit
'1201 Re&chercher... &Search...
'1202 &Remplacer... &Replace...

Private Sub Form_Load()
Call LoadResStrings
End Sub

Private Sub LoadResStrings()

Dim ctl As Control

For Each ctl In Me.Controls
Select Case TypeName(ctl)
Case "Menu"
ctl.Caption = LoadResStringX(ctl.Caption)
Case Else
' On continue si on a plus de contrôles..
End Select
Next ctl

End Sub

Private Function LoadResStringX(ByRef lResStringID As Long) As String
On Error Resume Next
LoadResStringX = LoadResString(lResStringID)
If (Err.Number > 0) Then LoadResStringX = LoadResString(0)
End Function
'***

le projet de cet exemple sera posté dans le message suivant

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous