Questions

Résolu
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009 - 6 mars 2009 à 11:34
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009 - 8 mars 2009 à 12:59
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 mars 2009 à 14:40
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)
3
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009
6 mars 2009 à 16:34
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 ;)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 mars 2009 à 14:41
PS : Pas testé en .Net mais ces méthodes n'ont pas dû changer
0
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009
6 mars 2009 à 15:57
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.
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 mars 2009 à 16:37
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
0
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009
6 mars 2009 à 16:44
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 ? :)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 mars 2009 à 19:13
Moi, je dirais que modif ou pas, relis-les, ça ne coute pas grand chose
0
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009
6 mars 2009 à 19:27
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é :(
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 mars 2009 à 03:02
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
0
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009
7 mars 2009 à 09:11
Ok, je vais essayer de faire ça :)
0
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009
8 mars 2009 à 12:09
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.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 mars 2009 à 12:51
Autre question --> Autre topic, stp
Je n'y connais rien en XML et tu auras plus de chance de trouver des réponses
0
lomatic Messages postés 37 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 9 octobre 2009
8 mars 2009 à 12:59
ok
0
Rejoignez-nous