Salut a tous ,
Grace au DRCharly 93 J'ai crée un projet et pour donner un coté professional a mon projet je vouderais crée un assistant d'installation j'ai crée une classe et 3 Fenétres d'installation .
La 1ére c'est la fenétre de Bienvenue
La 2éme c'est pour choisir le répértoire d'installation .
La 3éme pour términer l'installation .
La 4éme c'est pour lancer le logiciel " Logiciel.exe"
Dans le Code Classe cAssistant j'ai mis ça :
cAssistant est une classe
m_nPlanActif est un entier // Numero du plan encours (entre 1 et 20)
m_tabPlan est un tableau statique de 50 entiers // Tableau contenant l'enchainement des plans "précédents"
m_nIndPlanPrecedent est un entier // Indice du plan précédent dans le tableau
m_sNomFen est une chaîne
FIN
PROCEDURE Constructeur(sNomFen)
:m_nIndPlanPrecedent=0 // pas de plan précédent dans le tableau d'enchainement
:m_sNomFen = sNomFen
PROCEDURE Destructeur()
PROCEDURE PRIVÉE CAssist::ChangePlan(nPlan)
// Change le plan en cours dans la fenêtre assistant
// controle de dépassement
SI nPlan<1 OU nPlan >20 ALORS
Erreur("CAssist:ChangePlan: Dépassement du nombre maximum de plans")
SINON
// si on passe au premier plan, le bouton <précédent> est grisé
SI nPlan=1 ALORS
{:m_sNomFen+".BTN_PRECEDENT"}..Etat=Grisé
SINON
{:m_sNomFen+".BTN_PRECEDENT"}..Etat=Actif
FIN
// si on passe au dernier plan, le bouton <suivant> devient <terminer>
SI nPlan=20 ALORS
{:m_sNomFen+".BTN_SUIVANT"}..Libellé="&Terminer"
ELSE
{:m_sNomFen+".BTN_SUIVANT"}..Libellé="&Suivant >"
FIN
// activation du plan
{:m_sNomFen}..Plan = nPlan
// le plan encours devient le nouveau plan
:m_nPlanActif=nPlan
FIN
PROCEDURE VIRTUELLE CAssist::Initialisation()
// Initialisatin générale (effectuée une seule fois au début)
ExécuteTraitement(:m_sNomFen+".OnInitPlan",trtProcédure,0)
// l'assistant commence sur le plan 1
:ChangePlan(1)
// Initialisation du premier plan
ExécuteTraitement(:m_sNomFen+".OnInitPlan",trtProcédure,1)
// Procedure appeléepar le bouton "annuler" de l'assistant
PROCEDURE VIRTUELLE CAssist::OnAnnuler()
// fermeture de l'assistant
Ferme()
PROCEDURE CAssist::OnPrecedent()
// Méthode appelée par le bouton précédent de l'assistant
// passe au plan précédent dans le tableau des successions de plans
:ChangePlan(:m_tabPlan[:m_nIndPlanPrecedent])
// Initialisation du nouveau plan
ExécuteTraitement(:m_sNomFen+".OnInitPlan",trtProcédure,:m_nPlanActif)
// décrémentation de l'indice du plan précédent dans le tableau d'enchainement des plans
:m_nIndPlanPrecedent--
// contrôle de l'indice
IF :m_nIndPlanPrecedent<0 ALORS Erreur("CAssistlanPrecedent: indice min du tableau dépassé")
PROCEDURE CAssist::OnSuivant()
// Méthode appelée par le bouton "suivant" ou "terminer" de l'assistant
// controle des bornes
IF (:m_nPlanActif < 1) OU (:m_nPlanActif > 20) ALORS Erreur("CAssist:Suivant() : indice de plan hors borne")
// si le controle du plan n'est pas valide on reste sur ce plan
SI ExécuteTraitement(:m_sNomFen+".bOnControlPlan",trtProcédure,:m_nPlanActif)=Faux ALORS RETOUR
// si on est sur le dernier plan
SI :m_nPlanActif=20 ALORS
// Action finale
:OnTerminer()
SINON
// Actionne le sablier
Sablier(Vrai)
// Lance l'action associé au plan encours, si c'est réussie on passe au plan suivant
SI ExécuteTraitement(:m_sNomFen+".bOnActionPlan",trtProcédure,:m_nPlanActif) ALORS
// on ajoute un plan précédent dans le tableau d'enchainement des plans
:m_nIndPlanPrecedent++
// le plan précédent est le plan encours
:m_tabPlan[:m_nIndPlanPrecedent]=:m_nPlanActif
// On passe sur le plan suivant
:ChangePlan(ExécuteTraitement(:m_sNomFen+".nOnPlanSuivant",trtProcédure,:m_nPlanActif))
// On appel la fonction d'init du nouveau plan
ExécuteTraitement(:m_sNomFen+".OnInitPlan",trtProcédure,:m_nPlanActif)
FIN
// Désactionne le sablier
Sablier(Faux)
PROCEDURE VIRTUELLE CAssist::OnTerminer()
// Appel du OnTerminer de la fenêtre
ExécuteTraitement(:m_sNomFen+".OnTerminer",trtProcédure)
Voila , je chercher a configurer ces 4 fenétre pour crée mon logiciel .
Merci pour vos conseils et suggestions .
Cordialement, Stéphane .