ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

SET DEFAULT au menu   



L'auteur

Ludo186
France France
Membre Simple
# 0000000010
enregistré le 13/10/2004

43 ans
FORESTIER Ludovic
37250 Veigné
de la société ATER
Fiche personnelle


Note des membres
15/20
1 vote


Contributions > 20 - Trucs et Astuces

SET DEFAULT au menu
# 0000000307
ajouté le 10/04/2006 08:40:49 et modifié le 10/04/2006
consulté 4649 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0

Zoomer sur l'image
Description
Vous allez pouvoir avoir au démarrage de fox un menu supplémentaire qui vous permettra, lorsque vous aurez un projet d'ouvert, de faire facilement un "SET DEFAULT" sans vous soucier de la syntaxe.

Il faut que, dans vos projets, le chemin "HOME" soit rempli.

 

1)Dans le "CONFIG.FPW" de Fox, ajouter la ligne suivante :

COMMAND = DO "C:\Program Files\Microsoft Visual FoxPro 9\menu.prg"

Fox exécutera votre programme au démarrage

2) créer le PRG suivant ( menu.prg) : 

Code source :
DEFINE PAD dynmenu OF _MSYSMENU PROMPT '\<chemin_projet' COLOR SCHEME 3 ;
  AFTER _MSYSTEM ;
  KEY ALT+C, ""
ON PAD dynmenu OF _MSYSMENU ACTIVATE POPUP dynamicite

DEFINE POPUP dynamicite MARGIN RELATIVE SHADOW COLOR SCHEME 4
IF _vfp.Projects.Count > 1
  nb = _vfp.Projects.Count
  FOR i=1 TO _vfp.Projects.Count
    DEFINE BAR i OF dynamicite PROMPT ALLTRIM(STR(i)) + " - " +_vfp.Projects(i).HomeDir
  ENDFOR
ELSE
  nb = 1
  DEFINE BAR 1 OF dynamicite PROMPT IIF(_vfp.Projects.Count = 0 ,"( vide )"_vfp.Projects(1).HomeDir  )
ENDIF
DEFINE BAR nb + 1 OF dynamicite PROMPT "\-"
DEFINE BAR nb + 2 OF dynamicite PROMPT "Mise à jour du menu"

ON SELECTION POPUP dynamicite DO takeaction IN "c:\test\menu\menu.prg" WITH PROMPT()

PROCEDURE takeaction(cPrompt)
  IF Cprompt = "Mise à jour du menu"
    DO c:\test\menu\menu.prg
  ELSE
    SET DEFAULT TO _vfp.Projects(1).HomeDir
    WAIT WINDOW _vfp.Projects(1).HomeDir NOWAIT
  ENDIF
ENDPROC
Commentaires
le 26/04/2006, Ludo186 a écrit :
Petite correction :

Remplacez les lignes suivantes :

ON SELECTION POPUP dynamicite DO takeaction IN "c:\test\menu\menu.prg" WITH PROMPT()

PROCEDURE takeaction(cPrompt)
IF Cprompt = "Mise à jour du menu"
DO c:\test\menu\menu.prg
ELSE
SET DEFAULT TO _vfp.Projects(1).HomeDir
WAIT WINDOW _vfp.Projects(1).HomeDir NOWAIT
ENDIF
ENDPROC

PAR :

ON SELECTION POPUP dynamicite DO takeaction IN SYS(2004)+"\menu.prg" WITH PROMPT()

PROCEDURE takeaction(cPrompt)
IF Cprompt = "Mise à jour du menu"
DO SYS(2004)+"\menu.prg"
ELSE
SET DEFAULT TO SUBSTR(cprompt,AT("-",cprompt)+2)
WAIT WINDOW SUBSTR(cprompt,AT("-",cprompt)+2) NOWAIT
ENDIF
ENDPROC

Ainsi si vous avez plusieurs projets ouverts, vous pouvez changer le "SET DEFAULT" sans effort.


Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3