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.
Menu paramétrable à laisser sur le bureau Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Menu paramétrable à laisser sur le bureau Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Menu paramétrable à laisser sur le bureau Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Menu paramétrable à laisser sur le bureau Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Menu paramétrable à laisser sur le bureau Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Menu paramétrable à laisser sur le bureau Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Menu paramétrable à laisser sur le bureau Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Menu paramétrable à laisser sur le bureau Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Menu paramétrable à laisser sur le bureau Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Menu paramétrable à laisser sur le bureau Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Menu paramétrable à laisser sur le bureau Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Menu paramétrable à laisser sur le bureau Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Menu paramétrable à laisser sur le bureau Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Menu paramétrable à laisser sur le bureau Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Menu paramétrable à laisser sur le bureau 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
Le Deal du moment : -25%
PC Portable Gamer 16,1” HP Victus 16 – 16 ...
Voir le deal
749.99 €

 

 Menu paramétrable à laisser sur le bureau

Aller en bas 
4 participants
AuteurMessage
Klaus

Klaus


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

Menu paramétrable à laisser sur le bureau Empty
MessageSujet: Menu paramétrable à laisser sur le bureau   Menu paramétrable à laisser sur le bureau EmptyDim 16 Juin 2013 - 19:32

J'avais déjà publié récemment un outil permettant de crée, modifier et utiliser un menu. L'exécutable est à lancer en début de session et peut rester actif - il n'est pas encombrant et au combien pratique pour accéder rapidement à ses programmes.

On peut créer autant de sous-menus que nécessaire, et dans chaque sous-menu, autant de lignes que nécessaire. Chaque ligne a 4 paramètres:
- le libellé affiché à l'écran
- le chemin vers le fichier à lancer
- un paramètre à passer éventuellement au programme
- le dossier par défaut dans lequel le programme doit s'exécuter

On peut ainsi lancer n'importe quel programme exécutable. Mais on peut aussi lancer l'éditeur de Panoramic. On peut même lancer l'éditeur de panoramic avec le nom du fichier BAS en paramètre, ainsi que le dossier dans lequel il est. Panoramic ouvre alors ce fichier d'un seul clic. Et je fais la même chose avec mes projets Delphi etc.

Et le clou de l'affaire, c'est que ce programme contient automatiquement un premier menu nommé "Outils" qui a deux fonctions:
- modifier la liste principale des sous-menus ou un des sous-menus
- recharger la liste des sous-menus après une modification
Ce programme est ainsi son propre éditeur.

J'ai ajouté maintenant la possibilité de spécifier une adresse http:// dans le paramètre du fichier à lancer. Cette adresse URL s'ouvrira alors dans un nouvel onglet ou une nouvelle fenêtre (en fonction des paramètres du browser) du browser Web par défaut. C'est un moyen d'accéder au Mag en un seul clic.

Voici le code (nécessite KGF.dll):
Code:
' xmenu.bas
'
' Le fichier xmenu.ini contient la liste des menus.
' Définis à ce jour:
' - menu_jeux.ini
' - menu_panoramic.ini
' - menu_delphi.ini
' - menu_help.ini
'
' les fichiers des menus individuels contiennent les informations suivantes:
'   libellé,programme,paramètres,dossier
' il est conseillé d'entourer chaque champ par des guillemets.
'
' tous ces menus seront présentés comme menus Panoramic.
' les programmes seront lancés par EXECUTE.
'
' KGF.dll est utilisé pour déterminer le nom court à partir du nom log
' et accessoirement pour décoder une ligne dans les fichiers menu_xxx.ini
'
' Le menu Outils est fixe et imposé. Il contient une fonction qui permet
' de recharger.tous les menus, ainsi qu'une fonction qui permet d'éditer
' les fichiers paramètres.
' Le fichier xmenu.ini contient la liste des sous-menus.
' Les sous-menus doivent s'appeler menu_xxx.ini avec xxx étant le nom
' du sous-menu dans xmenu.ini.
' Après une modification, la fonction Recharger affiche le menu modifié
'
' Si les 7 premiers caractères d'un nom de programme (2ème paramètre
' d'une ligne d'un menu) sont "http://", le programme génère un fichier
' "c:\temp\xmenutemp.html".dans lequel il dépose on berf code HTML avec
' un Java-Script redirigeant vers la page HTML choisie, puis lance
' l'exécution de ce code temporaire.

KGF_initialize("KGF.dll")

labels()
constantes()
variables()
form0()
objets()
menus()

end

sub labels()
  label click_menu, refresh, modif, modifier
end_sub

sub constantes()
  dim xmenu$ : xmenu$ = "xmenu.ini"
end_sub

sub variables()
  dim no%, no1%, no2%, nox%, noy%
  dim no_menus%, no_objets%, no_refresh%, no_combo%
  dim f$, s$, i%, s1$, s2$, s3$
  dim n%, n_menu%, n_ligne%
end_sub

sub form0()
  border_small 0 : height 0,45 : caption 0,"Menu Klaus"
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Outils"
  no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Recharger"
    on_click no%,refresh
  no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-"
  no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Modifier"
    on_click no%,modif
end_sub

sub objets()
  no% = no% + 1 : dlist no% : no_menus% = no%
  no% = no% + 1 : dlist no% : no_objets% = no%
  no% = no% + 1 : combo no% : no_combo% = no%
    top no%,10 : left no%,10 : width no%,100
  no% = no% + 1 : button no% : top no%,10 : left no%,130
    caption no%,"Modifier" : on_click no%,modifier
  no_refresh% = no%
end_sub

sub menus()
  if file_exists(xmenu$)=0
    file_open_write 1,xmenu$
    ' ********************************************************
    ' *********** adapter ici la liste des sous-menus ********
    ' ***********       à créer automatiquement       ********
    ' ********************************************************
    file_writeln 1,"menu_jeux.ini"
    file_writeln 1,"menu_panoramic.ini"
    file_writeln 1,"menu_delphi.ini"
    file_writeln 1,"menu_help.ini"
    ' ********************************************************
    ' ***********           fin de la liste           ********
    ' ********************************************************
    file_close 1
  end_if
  clear no_objets%
  clear no_combo%
  item_add no_combo%,"xmenu"
  file_open_read 1,xmenu$
  while file_eof(1)=0
    file_readln 1,f$
    if trim$(f$)="" then exit_while
    item_add no_menus%,f$
    if file_exists(f$)=0
      file_open_write 2,f$
      file_close 2
    end_if
    s$ = f$
    i% = instr(s$,"_")
    if i%>0 then s$ = mid$(s$,i%+1,len(s$))
    i% = instr(s$,".")
    if i%>0 then s$ = left$(s$,i%-1)
    item_add no_combo%,s$
    no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    item_add no_objets%,str$(no%)
      caption no%,s$
    ' ici, charger le sous-menu
    file_open_read 2,f$
    nox% = 128 + count(no_menus%) : dlist nox%
    while file_eof(2)=0
      file_readln 2,f$
      item_add nox%,f$
      KGFDelimitedTextExtract(f$,",",1)
      s1$ = KGFDelimitedTextExtract$
      noy% = nox%*32 + count(nox%)
      sub_menu noy% : parent noy%,no2% : caption noy%,s1$
      item_add no_objets%,str$(noy%)
      if left$(s1$,1)<>"-" then on_click noy%,click_menu
    end_while
    file_close 2
  end_while
  file_close 1
end_sub

click_menu:
  n% = number_click
  n_menu% = bin_and(n%,127*32) / 32
  n_ligne% = bin_and(n%,31)
  s$ = item_read$(n_menu%+128,n_ligne%)
' s1$ = "n%="+str$(n%)+"  n_menu%="+str$(n_menu%)
' message s1$ + "  n_ligne%="+str$(n_ligne%)
  KGFDelimitedTextExtract(s$,",",2)
  s1$ = KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",3)
  s2$ = KGFDelimitedTextExtract$
  KGFDelimitedTextExtract(s$,",",4)
  s3$ = KGFDelimitedTextExtract$
  if lower$(left$(s1$,7))="http://"
    file_open_write 1,"c:\temp\xmenutemp.html"
    file_writeln 1,"<html>"
    file_writeln 1,"<head>"
    file_writeln 1,"<title>Lancement site</title>"
    file_writeln 1,"<script type="+chr$(34)+"text/javascript"+chr$(34)+">"
    file_writeln 1,"<!--"
    file_writeln 1,"window.location = "+chr$(34)+s1$+chr$(34)
    file_writeln 1,"//-->"
    file_writeln 1,"</script>"
    file_writeln 1,"</head>"
    file_writeln 1,"</html>"
    file_close 1
    s1$ = "c:\temp\xmenutemp.html"
  end_if
  ExecuteProgram(s1$,s2$,s3$)
' message "["+s1$+"] ["+s2$+"] ["+s3$+"]"
  return
  
refresh:
  while count(no_objets%)>0
    n% = val(item_read$(no_objets%,count(no_objets%)))
    item_delete no_objets%,count(no_objets%)
    delete n%
  end_while
  no% = no_refresh%
  menus()
  return
  
modif:
  height 0,90
  return
  
modifier:
  height 0,45
  if text$(no_combo%)="" then return
  s$ = text$(no_combo%)
  if s$="xmenu"
    s1$ = dir_current$ + "\xmenu.ini"
  else
    s1$ = dir_current$ + "\menu_"+s$+".ini"
  end_if
  s2$ = ""
  s3$ = ""
  ExecuteProgram(s1$,s2$,s3$)
  return
  
#INCLUDE "KGF_SUB.bas"


Dernière édition par Klaus le Dim 16 Juin 2013 - 22:54, édité 1 fois
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

Menu paramétrable à laisser sur le bureau Empty
MessageSujet: Re: Menu paramétrable à laisser sur le bureau   Menu paramétrable à laisser sur le bureau EmptyDim 16 Juin 2013 - 20:20

Je vais y regarder, 
juste un petit oubli (ligne 106) ON_ERROR_GOTO le label no_file_2 n'existe pas.

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Menu paramétrable à laisser sur le bureau Empty
MessageSujet: Re: Menu paramétrable à laisser sur le bureau   Menu paramétrable à laisser sur le bureau EmptyDim 16 Juin 2013 - 20:45

J'ai fait quelque chose de semblable pour mes besoins personnels, depuis longtemps, et c'est plutôt pratique à utiliser: en fait j'ai plusieurs grandes catégories avec chacune son icône sur le bureau: utilitaires, vidéo/son, photo, bureautique, dessin, Panoramic, etc. et c'est rudement pratique pour s'y retrouver., avec pour chaque application la même chose que toi: chemin d'accès, paramètre(s) à passer, répertoire d'exécution. Et possibilités de mises à jour (ajout de programmes).
Je n'ai pas trop soigné l'esthétique (c'était pour moi... et mon épouse), mais c'est efficace.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Menu paramétrable à laisser sur le bureau Empty
MessageSujet: Re: Menu paramétrable à laisser sur le bureau   Menu paramétrable à laisser sur le bureau EmptyDim 16 Juin 2013 - 21:32

Bien joué Klaus
Revenir en haut Aller en bas
Klaus

Klaus


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

Menu paramétrable à laisser sur le bureau Empty
MessageSujet: Re: Menu paramétrable à laisser sur le bureau   Menu paramétrable à laisser sur le bureau EmptyDim 16 Juin 2013 - 22:55

Merci, Jean-Claude. C'était un résidu d'un test... J'ai retiré la ligne 106.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Menu paramétrable à laisser sur le bureau Empty
MessageSujet: Re: Menu paramétrable à laisser sur le bureau   Menu paramétrable à laisser sur le bureau Empty

Revenir en haut Aller en bas
 
Menu paramétrable à laisser sur le bureau
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» xmenu: menu paramétrable dynamiquement
» Menu avec icones entièrement paramétrable
» Menu personalisé avec icones et menu contextuel
» Aide Panoramic sur le bureau
» Une trace paramétrable en 100 % Panoramic

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: