Appeler un etat avec une bibliotheque

Répondre
Thierry ALRIC

Appeler un etat avec une bibliotheque

Message par Thierry ALRIC » jeu. nov. 20, 2003 1:37 pm

Je mets en place les exemples de ton super didacticiel, je n'ai jamais utiliser ni les bibliotheques, ni les USES, ni les constantes.

Mais là je bloque pour ouvrir un etat à partir d'une fiche pour aller chercher le code dans la bibliotheque. Ca marche pas !! :cry:

----------------------------------------------
method pushButton(var eventInfo Event)

Lib.ConstMenu("CAPITAL.rsl")

endMethod
----------------------------------------------
et ta methoque ecrite dans une bilbliotheque
-----------------------------------------------
Var
PmFichier,PmEtat PopUpMenu
M Menu
Etat Report
EndVar

Etat.open(NomEtat)
Etat.maximize()

if not M.isAssigned() then

PmFichier.AddText("&Imprimer...",MenuEnabled,MenufilePrint)
PmFichier.AddText("&Configurer l'imprimante...",MenuEnabled,MenufilePrinterSetUp)
PmFichier.AddText("&Fermer",MenuEnabled,MenuControlClose)
PmEtat.AddText("Première page",MenuEnabled,MenuReportPageFirst)
PmEtat.AddText("Page suivante",MenuEnabled,MenuReportPageNext)
PmEtat.AddText("Page précédente",MenuEnabled,MenuReportPagePrevious)
PmEtat.AddText("Dernière page",MenuEnabled,MenuReportPageLast)
PmEtat.AddText("Aller à la page...",MenuEnabled,MenuReportPageGoto)

M.AddPopUp("&Fichier",PmFichier)
M.AddPopUp("&Etat",PmEtat)

endif

Etat.setmenu(M)

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » jeu. nov. 20, 2003 2:45 pm

Alors dans le use de la fiche il faut déclarer la fonction de la bibilothèque

uses Objectpal
ConstMenu(Const NomEtat String)
enduses

(En passant ce n'était pas très malin de ma part de passer par une constante ! Je m'en suis rendu compte récemment. Il vaut mieux transmettre une variable nom de fichier)

Puis n'importe où dans la fiche tu appelles :

Var
Lib Library
EndVar

Lib.open(":MonAlias:MaLib")
Lib.ConstMenu(":MonAlias:MonEtat")
Lib.close()

Bon la librairie peut rester ouverte (ouverture dans l'open de la fiche par exemple et fermeture dans le close).

Tu as l'exemple détaillé ici : http://www.clairinfo.fr/fichiers/Tut_pdox_7.htm

Je suis content si mon tutorial peut t'aider :D
Il faut que je m'y remette...

Thierry ALRIC

Merci

Message par Thierry ALRIC » jeu. nov. 20, 2003 3:15 pm

Merci Côme

:wink:

Thierry ALRIC

Et dans les scripts, ca marche ?

Message par Thierry ALRIC » jeu. nov. 20, 2003 3:27 pm

Uses ObjectPal

ConstMenu(Const NomEtat String)

endUses

est refusé dans le script !!! :cry:

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » jeu. nov. 20, 2003 3:44 pm

Tu mets cela dans le bloc uses de la fiche (avec tes méthodes ou variables globales) :wink:

Thierry ALRIC

Bibliotheques

Message par Thierry ALRIC » jeu. nov. 20, 2003 6:25 pm

Je te disais des bétises, ca marche trés bien avec le scripts, le seul probleme est que la fiche qui appelle le script, et ldonc l'état reste devant, malgré toutes les commandes de bringtotop() maximize()...

:cry: Saperlipopette !!!

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » jeu. nov. 20, 2003 6:35 pm

Heu je suis un peu perdu :oops:

Faisons simple, la fiche (pas besoin de script !) déclare la routine de la librairie. Un bouton de la fiche (par exemple) lance donc un état à l'écran (c'est l'objectif de la routine ConstMenu). Oui cet état est devant tout le reste. C'est le résultat désiré pour ma part. L'utilisateur consulte, imprime éventuellement puis ferme son état. Il retrouve alors ce qu'il y a dessous, normalement la fiche.

C'est quoi le problème ?

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » jeu. nov. 20, 2003 6:52 pm

Ah si j'ai peut-être compris (moi parfois un peu lent :roll: )
Tu veux dire que chez toi l'état n'est pas visible car la fiche reste devant ?
Alors ce comportement n'est pas le cas d'une fiche standard sans code particulier. Tu devrais pouvoir donc faire un petit test avec une nouvelle fiche vierge de tout code pour vérifier que ça marche. Si c'est le cas le problème viendrait d'une particularité de ta fiche à déterminer.

Répondre