FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Générateur de menu à partir d'un fichier texte Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Générateur de menu à partir d'un fichier texte Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Générateur de menu à partir d'un fichier texte Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Générateur de menu à partir d'un fichier texte Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Générateur de menu à partir d'un fichier texte Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Générateur de menu à partir d'un fichier texte Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Générateur de menu à partir d'un fichier texte Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Générateur de menu à partir d'un fichier texte Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Générateur de menu à partir d'un fichier texte Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Générateur de menu à partir d'un fichier texte Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Générateur de menu à partir d'un fichier texte Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Générateur de menu à partir d'un fichier texte Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Générateur de menu à partir d'un fichier texte Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Générateur de menu à partir d'un fichier texte Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Générateur de menu à partir d'un fichier texte Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Drone Dji DJI Mini 4K (EU)
239 € 299 €
Voir le deal

 

 Générateur de menu à partir d'un fichier texte

Aller en bas 
4 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte EmptySam 26 Sep 2015 - 13:27

Dale le cadre d'un autre fil de discussion, j'avais posté ce petit outil pour générer le code Panoramic de création d'un menu avc sous-menus hiérarchisés sans limitation. Le voici, de façon autonome:

On peut passer par un fichier texte, chargé dans un mémo, et générer le menu à partir de là. Voici un petit programme très simple qui réalise cela. Notons que "simple" ne veut pas dire "pas puissant". On peut créer autant de sous-menus et lignes de menus que tu veux, il gère le on_click et la génération autimatique des numéros d'objets.
Code:
' editeur_de_menu.bas
'
' Le menu est constitué dans un fichier texte.
' Me caractère "-" indique le niveau d'indention
' Le fichier est présenté dans un mémo, éditable.
' Il peut être sauvegardé et restauré.
' Un bouton permet de générer le code source du menu dans un autre mémo.
' Un spin donne le numéro d'objet de départ pour la création de tous les objets.

label load, save, generate, export, copy

dim no%, no1%, no_open%, no_save%, no_bas%, no_mnu%, no_stack%, no_start%, no_label%
dim f$, i%, s$, niv%, gg$, lab$
gg$ = chr$(34)

width 0,1000
no% = 1000 : no_mnu% = no%
no1% = no%
memo no% : top no%,10 : left no%,10 : width no%,400 : height no%,300 : bar_both no%
  font_name no%,"Courier" : font_size no%,10
no% = no% + 1 : button no% : top no%,top(no1%) : left no%,left(no1%)+width(no1%)+10
  caption no%,"Ouvrir" : on_click no%,load
no% = no% + 1 : button no% : top no%,top(no%-1)+30 : left no%,left(no%-1)
  caption no%,"Sauver" : on_click no%,save
no% = no% + 1 :alpha no% : top no%,top(no%-1)+50 : left no%,left(no%-1)
  caption no%,"Numéro de début:"
no% = no% + 1 : no_start% = no% : spin no%
  top no%,top(no%-1)+20 : left no%,left(no%-1) : width no%,80
  min no%,1 : max no%,10000 : position no%,100
no% = no% + 1 :alpha no% : top no%,top(no%-1)+30 : left no%,left(no%-1)
  caption no%,"Label onclick:"
no% = no% + 1 : no_label% = no% : edit no%
  top no%,top(no%-1)+20 : left no%,left(no%-1) : width no%,80
no% = no% + 1 : button no% : top no%,top(no%-1)+50 : left no%,left(no%-1)
  caption no%,"Générer" : on_click no%,generate
no% = no% + 1 : button no% : top no%,top(no%-1)+50 : left no%,left(no%-1)
  caption no%,"Exporter" : on_click no%,export
no% = no% + 1 : button no% : top no%,top(no%-1)+30 : left no%,left(no%-1)
  caption no%,"Copier" : on_click no%,copy
no% = no% + 1 : no_bas% = no% : memo no%
  top no%,top(no1%) : left no%,left(no1%+1)+width(no1%+1)+20
  width no%,width(no1%) : height no%,height(no1%) :inactive no%
no% = no% + 1 : no_open% = no% : open_dialog no%
no% = no% + 1 : no_save% = no% : save_dialog no%
no% = no% + 1 : no_stack% = no% : dlist no%
end

load:
  filter no_open%,"Fichier source menu|*.mnu"
  f$ = file_name$(no_open%)
  if f$="_" then return
  if lower$(right$(f$,4))<>".mnu" then f$ = f$ + ".mnu"
  if file_exists(f$)=0
    message "Ce fichier n'existe pas."
    message f$
    return
  end_if
  file_load no_mnu%,f$
  return
 
save:
  filter no_save%,"Fichier source menu|*.mnu"
  f$ = file_name$(no_save%)
  if f$="_" then return
  if lower$(right$(f$,4))<>".mnu" then f$ = f$ + ".mnu"
  if file_exists(f$)=1
    if message_information_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return
  end_if
  file_save no_mnu%,f$
  return
 
export:
  filter no_save%,"Fichier source Panoramic|*.bas"
  f$ = file_name$(no_save%)
  if f$="_" then return
  if lower$(right$(f$,4))<>".bas" then f$ = f$ + ".bas"
  if file_exists(f$)=1
    if message_information_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return
  end_if
  file_save no_bas%,f$
  message "Le texte généré a été enregistré."
  return
 
copy:
  if count(no_bas%)=0
    message "Il n'y a rien à copier."
    return
  end_if
  s$ = ""
  for i%=1 to count(no_bas%)
    s$ = s$ + item_read$(no_bas%,i%) +chr$(13) + chr$(10)
  next i%
  clipboard_string_copy s$
  message "Le texte généré a été copié dans le presse-papier."
  return

generate:
  if count(no_mnu%)=0
    message "Rien à générer."
    return
  end_if
  lab$ = trim$(text$(no_label%))
  if len(lab$)=0
    message "Le label n'est pas défini - 'Click' est utilisé par défaut."
    lab$ = "Click"
    text no_label%,lab$
  end_if
  no% = position(no_start%)
  clear no_bas%
  clear no_stack%
  item_add no_bas%,"label "+lab$
  item_add no_bas%,"main_menu "+str$(no%)
  item_add no_stack%,str$(no%)
  for i%=1 to count(no_mnu%)
    s$ = item_read$(no_mnu%,i%)
      niv% = 0
      while left$(s$,1)="-"
        niv% = niv% + 1
        s$ = mid$(s$,2,len(s$))
      end_while
      if niv%>=count(no_stack%)
        if niv%>(count(no_stack%)+1)
          message "Oups - erreur dans la structure à la ligne "+str$(i%)+chr$(13)+chr$(10)+s$
          return
        end_if
        item_add no_stack%,str$(no%)
      else
        while niv%<(count(no_stack%)-1)
          item_delete no_stack%,count(no_stack%)
        end_while
      end_if
      no% = no% + 1
      item_add no_bas%,"sub_menu "+str$(no%)
      item_add no_bas%,"  parent "+str$(no%)+","+item_read$(no_stack%,count(no_stack%))
      item_add no_bas%,"  caption "+str$(no%)+","+gg$+s$+gg$
      item_add no_bas%,"  on_click "+str$(no%)+","+lab$
  next i%
  item_add no_bas%,"end"
  item_add no_bas%,""
  item_add no_bas%,lab$ + ":"
  item_add no_bas%,"  Sub"+lab$+"()"
  item_add no_bas%,"  return"
  item_add no_bas%,""
  item_add no_bas%,"sub Sub"+lab$+"()"
  item_add no_bas%,"  dim_local obj%"
  item_add no_bas%,"  obj% = number_click"
  item_add no_bas%,"  select obj%"
  item_add no_bas%,"    case "+str$(position(no_start%)+1)
  item_add no_bas%,"'    case "
  item_add no_bas%,"'    case "
  item_add no_bas%,"'    case "
  item_add no_bas%," end_select"
  item_add no_bas%,"end_sub"


  return


Il travaille avec des fichiers *.mnu qui contiennent les définitions des menus, et génère des *.bas. Voici un fichier mnu à titre d'exemple, pour les tests:
Code:
Fichiers
-Ouvrir
--Texte
--Panoramic
---Ancien
---Nouveau
--RTF
-Nouveau
--Texte
--Panoramic
---Ancien
---Nouveau
--RTF
-Fermer
Edition
-Copier
-Coller

Et voici le code généré, parfaitement fonctionnel:
Code:
label Click
main_menu 100
sub_menu 101
  parent 101,100
  caption 101,"Fichiers"
  on_click 101,Click
sub_menu 102
  parent 102,101
  caption 102,"Ouvrir"
  on_click 102,Click
sub_menu 103
  parent 103,102
  caption 103,"Texte"
  on_click 103,Click
sub_menu 104
  parent 104,102
  caption 104,"Panoramic"
  on_click 104,Click
sub_menu 105
  parent 105,104
  caption 105,"Ancien"
  on_click 105,Click
sub_menu 106
  parent 106,104
  caption 106,"Nouveau"
  on_click 106,Click
sub_menu 107
  parent 107,102
  caption 107,"RTF"
  on_click 107,Click
sub_menu 108
  parent 108,101
  caption 108,"Nouveau"
  on_click 108,Click
sub_menu 109
  parent 109,108
  caption 109,"Texte"
  on_click 109,Click
sub_menu 110
  parent 110,108
  caption 110,"Panoramic"
  on_click 110,Click
sub_menu 111
  parent 111,110
  caption 111,"Ancien"
  on_click 111,Click
sub_menu 112
  parent 112,110
  caption 112,"Nouveau"
  on_click 112,Click
sub_menu 113
  parent 113,108
  caption 113,"RTF"
  on_click 113,Click
sub_menu 114
  parent 114,101
  caption 114,"Fermer"
  on_click 114,Click
sub_menu 115
  parent 115,100
  caption 115,"Edition"
  on_click 115,Click
sub_menu 116
  parent 116,115
  caption 116,"Copier"
  on_click 116,Click
sub_menu 117
  parent 117,115
  caption 117,"Coller"
  on_click 117,Click
end

Click:
  SubClick()
  return

sub SubClick()
  dim_local obj%
  obj% = number_click
  select obj%
    case 101
'    case
'    case
'    case
 end_select
end_sub


Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Re: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte EmptySam 26 Sep 2015 - 13:59

Salut Klaus,

J'ai voulu tester ton programme, mais il n'y a pas l'option "nouveau".
Je suppose que c'est normal, vu qu'il doit être prévu pour GPP ou un autre éditeur.
Je le testerai, MAIS JE NE SUIS PAS CONTENT Very Happy Car je suis actuellement entrain de dévelloper un code pour faire la même chose...  Razz
Et comme ma vitesse de programmation n'est pas la tienne, je me suis fait doubler.

Sérieusement, tu as bien fait de te pencher sur le problème car ça va être utile pour Minibug et pour Pascal1000.

Quand j'aurai terminé le mien, je le posterais et tu verras qu'il y a des options que tu n'a pas prévues ...
Mais je garde le secret, sinon tu vas dégainer avant que j'ai eu le temps de dire OUF ! cherry

Alors à bientôt  Very Happy  geek

A+
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Re: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte EmptySam 26 Sep 2015 - 14:11

Tu sais, pour le tester, tu as deux possibilités:
1. Saisir directement le texte dans le mémo de gauche, 1 ligne par menu ou sous-menu. Le caractère "-" sert à donner l'indentation (la profondeur des menus et sous-menus.
2. Tu prends le fichier exemple que j'ai posté et tu le dépose où tu veux, avec l'extension *.mnu. Tu peux alors l'ouvrir avec le bouton "Ouvrir" ou copier/coller son contenu directement dans le mémo de gauche.

Ensuite, il n'y a plus qu'à régler les paramètres (nom du label on_click et premier numéro d'objet à utiliser), et appuyer sur "Générer".

Voila. C'est tout simple.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Re: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte EmptySam 26 Sep 2015 - 14:21

Bonjour a tous !

Comme le dit jean Claude, cela va me donner des idées pour GPP, c'est sûr...Wink

Le problème qui se pose maintenant, c'est qu'a force d'avoir plein d'idées, je ne vais plus savoir laquelle choisir !!!!

lol! lol! lol!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Re: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte EmptySam 26 Sep 2015 - 14:25

@Klaus
Oui, effectivement c'est simple d'utilisation.

J'espère te présenter le mien dans la semaine qui vient. La méthode n'est pas du tout la même.
Cela fera un casse tête de plus pour Minibug Very Happy

à bientôt.
Revenir en haut Aller en bas
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Re: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte EmptySam 26 Sep 2015 - 16:27

je le trouve intéressent et fonctionelle mais a mon opignon
il faut toujours écrire du code un peut plus court certe qu'a la traditionelle
mais bon! c'est très bien rien a redire
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Re: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte EmptySam 26 Sep 2015 - 17:02

Pour GPP, je pense garder le principe du fichier unique avec indentation du code de klaus que je trouve très pratique.

mais pour la saisie, j'étudie encore le meilleur principe. Certainement une saisie par EDIT avec quelques boutons pour naviguer dans l'arborescence du menu déroulant et les ajouts.
J'attends aussi le code de Jean Claude.

Donc affaire a suivre... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





Générateur de menu à partir d'un fichier texte Empty
MessageSujet: Re: Générateur de menu à partir d'un fichier texte   Générateur de menu à partir d'un fichier texte Empty

Revenir en haut Aller en bas
 
Générateur de menu à partir d'un fichier texte
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Copier / coller du texte à partir de la fenêtre de commandes
» Recherches dans un fichier texte
» Nom court d'un fichier à partir de son nom long
» Rechercher une séquence dans un fichier texte
» Camoufler un fichier texte dans une image

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: