Appel des procedures/appel de form

Résolu
asmahane24 Messages postés 32 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 10 octobre 2011 - 8 avril 2008 à 12:33
asmahane24 Messages postés 32 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 10 octobre 2011 - 14 avril 2008 à 15:32
Bonjour;
sachant que c'est ma premiere application avec VFP.

1) J'ai crée un projet "test" pour lequel j'ai rajouter deux form " pwd.scx et transfert.scx" dont "pwd.scx" est composé de deux bouttons. boutton1.click fait appel à transfert.scx par "DO FORM transfert.scx", sachant que test, pwd, transfert sont dans le meme repertoire le message "tranfert.scx est introuvable" m'est affiché lors de l'execution de boutton1.click.

2) dans le meme pojet j'ai rajouter "debut.prg" ( dans le meme repertoire) qui contient une fonction (rev_pwd). comment je peut faire appel a cette fonction a partir de l'une des methodes de "transfert"

Merci.
A voir également:

7 réponses

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
8 avril 2008 à 17:35
Bonjour,

et bienvenue sur ce forum.

Pense à rappeler à chaque fois la version de VFP que tu utilises, pour qu'on puisse t'aider au mieux.

Pour ta 2ème question, regarde du coté de SET PROCEDURE...
3
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
9 avril 2008 à 12:25
Regarde aussi du coté de SET PATH dans l'aide en ligne, pour que ton application sache ou trouver tes fichers.

Mike Gagnon
3
asmahane24 Messages postés 32 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 10 octobre 2011
9 avril 2008 à 13:31
bonjour;

avant tout je vous remerci pour votre collaboration.

- je travaille avec VFP9.
- effectivement mon programme ne connaissais pas le chemin des fichiers ou plus tot je l'envoyais sur un autre repertoire où il trouvais ni le begin, ni transfert.

j'ai ecris au debut de mon begin ce qui suit:

ChSys = SYS(16)
ChProgram = SUBSTR(ChSys, AT(":", ChSys) - 1)
CD LEFT(ChProgram, RAT("", ChProgram,2))&&& j'ai remplacer le 2 par 1
SET PATH TO CLASS, FORMS, HELP, IMAGES, INCLUDE, MENUS, PRG, REPORTS

je crois que le '2' le pointais sur un autre repertoire, j'ai donc remplacer ce '2' par '1' pour tester

ChSys = SYS(16)
ChProgram = SUBSTR(ChSys, AT(":", ChSys) - 1)
CD LEFT(ChProgram, RAT("", ChProgram,1))&&& j'ai remplacer le 2 par 1
SET PATH TO CLASS, FORMS, HELP, IMAGES, INCLUDE, MENUS, PRG, REPORTS

et ça marche

- pour la deuxieme question, j'ai rajouter au projet procedures.prg qui contient la fonction rev_pwd et dans le begin j'ai rajouter

SET PROCEDURE TO procedures.prg ADDITIVE

et maitenant quand je fais appel à rev_pwd dans begin.prg ça fonctionne mais je ne sais pas si c'est la meilleur methode.

je vous remerci encor une fois.
3
asmahane24 Messages postés 32 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 10 octobre 2011
8 avril 2008 à 14:37
Bonjour;

je vien de trouver une solution

dans le begin j'avais mis ce code ChSys =

SYS(16)
ChProgram = SUBSTR(ChSys, AT(":", ChSys) - 1)
CD LEFT(ChProgram, RAT("", ChProgram,2))&&& j'ai remplacer le 2 par 1
SET PATH TO CLASS, FORMS, HELP, IMAGES, INCLUDE, MENUS, PRG, REPORTS

maintenant mon programme reconnais le chemin de transfert.scx et rev_pwd

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
10 avril 2008 à 14:03
- pour la deuxieme question, j'ai rajouter au projet procedures.prg qui contient la fonction rev_pwd et dans le begin j'ai rajouter

SET PROCEDURE TO procedures.prg ADDITIVE

C'est une façon de faire. Pas très 'objet orienté' mais plutot une méthode 'procedurale', qui date du dernier sciècle :-)
Normallement pour moi, toutes mes procédures et fonctions, je les mets dans une classe global, et je n'initialise au début du programme, comme celà toutes mes procédures sont disponible en tout temps dans la session.

Mike Gagnon
0
michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
10 avril 2008 à 14:44
Mike a parfaitement raison sur le fond: il serait bien que tu prennes dès le début des habitudes de programmation orienté objet.

Mes procédures ne sont pas non plus dans un fichier de procedures (depuis des années).
Je les répartis en 2 :
celles qui concernent un seul type d'objet sont dans des méthodes créées dans la classe depuis laquelle je dérive cet objet
celles qui doivent être accessibles de partout sont dans un objet basé sur la classe custom, que je dépose sur la classe dont tous mes forms sont dérivés
0
asmahane24 Messages postés 32 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 10 octobre 2011
14 avril 2008 à 15:32
Bonjour Mike et Michel

Je vous remerci pour ce conseil, je me suis habituer à la programmation sequentielle ( movaise habitude) mais ma methode de travaille vas certainement s'ameliorer avec votre aides et vos conseils.

Salutations;
0
Rejoignez-nous