Questions

[Résolu]
Signaler
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009
-
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009
-
Bonjour,

Je suis en train de réaliser une mini application mais pour avancer davantage, j'ai besoin de quelques informations.

L'application possède deux forms actuellement :
 - frmMain qui dispose d'un bouton "options" qui permet d'ouvrir la seconde form. Cette form chargera les paramètres enregistrés dans un fichier XML.
 - frmOptions qui permet de définir un chemin, un filtre et une période. Cette form possède un bouton "Parcourir", "Sauvegarder", "Annuler".

Comment faire pour bloquer l'accès à la form principale pendant que l'utilisateur saisi les paramètres demandés ?

Les données de frmOptions sont enregistrées dans un fichier XML.

Est-ce possible d'utiliser des méthodes dans une form ?

Etant donné que frmMain utilise les paramètres d'un fichier XML, comment recharger celui-ci à la fermeture de frmOptions et optimiser pour ne pas le recharger si le bouton Annuler a été pressé?

En vous remerciant d'avance.

Cordialement.

13 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
Normalement, quand tu demandes l'affichage d'une forme, tu peux préciser si elle sera montrée de manière Modal ou Modless
Modal : Le code attendra que la forme appelée soit mise en Hide avant de poursuivre
Modeless ; Le code continue après la demande d'affichage

Exemple :
   Dim maForme As frmOptions
   Set maForme = New frmOptions
   maForme.Show vbModal   ' ou vbModeless
   MsgBox "fini"
   Set maForme = Nothing
Dans ta forme Options, au moment de terminer, il lui suffit de faire un Me.Hide pour rendre la main à l'appelant (si Modal)

Teste ces deux méthodes et tu verras la différence

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009

En faisant des recherches sur ce que tu m'as dit, j'ai trouvé la réponse. (les équivalents)

VBModal > showdialog()
VBModeless > show()

Voici qui répond à une partie de mon sujet ;)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
PS : Pas testé en .Net mais ces méthodes n'ont pas dû changer
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009

Je vais testé ça, merci :)

Et sinon pour recharger le contenu de mon fichier XML dans le cas ou l'utilisateur aurait enregistré et non pas annulé ? Aurais-tu une idée ?

Bonne soirée.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Re
Recherger tes paramètres ?
Bah je ne sais pas comment tu t'es organisé, mais je suppose que tu as mis ces lectures dans une procédure distincte.
Tu n'as qu'à la rappeler avec un Call
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009

Au départ j'avais mis les paramètres dans les Settings mais je crois que ce n'est accessible qu'en lecture.

Pour le premier lancement de l'application, je comptais mettre les valeurs par défauts directement dans mes controles puis de charger les nouveaux en quittant la frmOptions.

Ma question était donc, comment dire à frmMain que l'enregistrement a été effectué pour ensuite charger les nouvelles valeurs ? :)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Moi, je dirais que modif ou pas, relis-les, ça ne coute pas grand chose
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009

Ca ne me pose pas de problème, mais comment faire pour faire relire à la forme principale... Désolé pour toutes ces questions, je ne suis pas vraiment calé :(
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Bah il faut rassembler les lignes qui servent à cette relecture dans une procédure distincte :
Dans ta Form_Load, tu lances   Call maNouvelleProcédure   et quand tu veux relancer la lecture, idem
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009

Ok, je vais essayer de faire ça :)
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009

Private Function ChargerDonnees()


        Dim element As XmlNodeList
        Dim noeud, noeudEnf As XmlNode


        Try
            xmlDoc.Load("Settings.xml")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try


        element = xmlDoc.DocumentElement.GetElementsByTagName("Settings")


        For Each noeud In element
            For Each noeudEnf In noeud.ChildNodes
                If (noeudEnf.LocalName = "Path")Then
                    txtChemin.Text = noeudEnf.InnerText
                Else
                    If (noeudEnf.LocalName = "Period") Then
                        txtPeriode.Text = noeudEnf.InnerText
                    Else
                        If (noeudEnf.LocalName = "Filter")Then
                            txtFiltre.Text = noeudEnf.InnerText
                        End If
                    End If
                End If
            Next
        Next


    End Function


Me revoici avec un petit problème avec la lecture de mon fichier XML... Ci-dessus la fonction.

Voici le contenu du fichier XML fournit d'origine par l'application.

<Settings>
  C:\inetpub\logs\LogFiles

  0

  <Filter>*.log</Filter>
</Settings>

Lors du debuggage, je me suis aperçu qu'il arrivait sur la boucle puis la quittait immédiatement. Je ne comprends pas pourquoi... Je lui demande de regarder dans le noeud principal Settings non ?
Commettrais-je une erreur d'appréciation ?

Merci d'avance à ceux qui voudront bien regarder ce bout de code...

Cordialement.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Autre question --> Autre topic, stp
Je n'y connais rien en XML et tu auras plus de chance de trouver des réponses
Messages postés
37
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
9 octobre 2009

ok