Enumeration et MenuItem

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Enumeration et MenuItem

Message par Ulix »

Salut a tous,

Dans mon projet, j'ai plusieurs fenêtres que j’inclus dans le code principal.

Pour ne pas avoir a recopier toutes les enumérations en entête du code principal,
j'ai opté pour une Enumération nommées (voie l'aide a la rubrique énumération)
par catégorie d'objet PB (enfin les principales - fenêtre, image, gadget, StatusBar, fichier... et Menu).
Dans l'aide (voir Les objets PureBasic) le Menu est considére comme une objet a par entière,
mais pas les MenuItems !

Ma question est : quelqu’un sait-il dans quel catégorie les constantes menu (Ex : #MenuOuvrir,
#MenuFermer...etc) devrait-il être énumérer ? :oops:

J'ai pensé aux Gadget ou aux Images ??

L'aide ne donne pas de consigne ! :twisted:


Je rajoute a la liste les Fonts !
Une constante destiné aux polices de caractères, en général énumérer comme suit :
#Font1, #Font12Gras... etc devrait être misent dans quel catégorie ???
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Enumeration et MenuItem

Message par Ar-S »

Bah tu les nommes bien comme tu veux... C'est toi qui choisis le nom..
Tu te fais un Enumeration MesFonts si ça te chante. Un Enumeration ItemsMenu etc...
Dans la doc ce sont des exemples mais tu les appelles bien comme tu veux.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Enumeration et MenuItem

Message par Ollivier »

Bonjour, tu peux appeler ça "Choice" (un choix). Sinon "MenuItem", excepté que ça fait deux lettres de plus que "Choice", je ne vois pas de grands problèmes!

Pour les polices, c'est plus délicat. Cela dépend si l'utilisateur peut en charger à la volée (approche dynamique) ou bien si les polices sont spécifiques à des fonctionnalités de ton projet (approche statique).

Dans le 1er cas, il est préférable de disposer d'une liste structurée, notamment pour gérer les doublons de chargement de police, mais aussi pour mesurer la fréquence d'utilisation de chaque police et les "délester" temporairement de la mémoire si besoin.

Dans le 2nd cas, ça reste statique, et les énumérations sont suffisantes. Tu peux les nommer de manière fonctionnelle.
Ex :
#PreferencesTextFont
#PreferencesLinkFont
#PreferencesWarnFont
#MyArrayTitleFont
#MyArrayHeadTextFont
#MyArrayMarginTextFont
#MyArrayContentNormalFont
#MyArrayContentAlertFont
#MyArrayFootFont
...
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Re: Enumeration et MenuItem

Message par Ulix »

Tout d'abord, Merci pour vos réponses ! :lol:

La question n'était pas comment nommer les constantes mentionnées dans les énumérations,
mais dans quelles catégories les énumérer ?

Les MenuItems vont dans quel catégorie d'objets ?
L'aide déclare que les MenuItems ne sont pas des objets ! OK
Mais alors dans quel catégorie je les mets ?
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Enumeration et MenuItem

Message par falsam »

Bonjour Ulix.

Enumeration Menu me parait bien

Code : Tout sélectionner

Enumeration Window
  #mainForm
EndEnumeration

Enumeration Gadget
  #gadget0
  #gadget1
  #gadget2
  #gadget3
  #gadget4  
EndEnumeration

Enumeration menu 
  #MainMenu
  #MenuItem1
  #MenuItem2
  #MenuItem3
  #MenuItem4
EndEnumeration

Debug "enumeration window"
Debug #mainForm

Debug "enumeration gadget"
Debug #gadget0
Debug #gadget1
Debug #gadget2
Debug #gadget3
Debug #gadget4

Debug "enumeration menu"

Debug #MainMenu
Debug #MenuItem1
Debug #MenuItem2
Debug #MenuItem3
Debug #MenuItem4

Declare OnMenuClick()
Declare onGadgetClick()
Declare onExit()


If OpenWindow(#mainForm, 0, 0, 800, 600, "Menu Example")
  If CreateMenu(#MainMenu, WindowID(#mainForm))    ; menu creation starts....
    MenuTitle("Project")
    MenuItem(#MenuItem1, "Open"   +Chr(9)+"Ctrl+O")
    MenuItem(#MenuItem2, "Save"   +Chr(9)+"Ctrl+S")
    MenuItem(#MenuItem3, "Save As"+Chr(9)+"Ctrl+A")
    MenuItem(#MenuItem4, "Close"  +Chr(9)+"Ctrl+C")
    BindMenuEvent(#MainMenu, #MenuItem1, @OnMenuClick())
    BindMenuEvent(#MainMenu, #MenuItem2, @OnMenuClick())
    BindMenuEvent(#MainMenu, #MenuItem3, @OnMenuClick())
    BindMenuEvent(#MainMenu, #MenuItem4, @OnMenuClick())
  EndIf
  
  For gadget = #gadget0 To #gadget4
    ButtonGadget(gadget, 700, gadget * 25, 80, 22, "Button " + gadget)
    BindGadgetEvent(gadget, @onGadgetClick())
  Next
  
  BindEvent(#PB_Event_CloseWindow, @onExit())
  
  Repeat : WaitWindowEvent() : ForEver  
EndIf

Procedure OnMenuClick()
  Debug "Vous avez cliqué sur le menu " + EventMenu()  
EndProcedure

Procedure onGadgetClick()
  Debug "Vous avez cliqué sur le gadget " + EventGadget()
EndProcedure

Procedure onExit()
  End
EndProcedure
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Enumeration et MenuItem

Message par Ollivier »

Code : Tout sélectionner

Enumeration Choice
#FileNew
#FileOpen
#FileSave
#FileSaveAs
#FileClose
#FileCloseAll
#FilePreferences
#FileRecent
#FileQuit
EndEnumeration
ou

Code : Tout sélectionner

Enumeration MenuItem
#miFileNew
#miFileOpen
#miFileSave
#miFileSaveAs
#miFileClose
#miFileCloseAll
#miFilePreferences
#miFileRecent
#miFileQuit
EndEnumeration
ou autre chose que tu conviens pour te repérer facilement.
Répondre