Par quelle fenêtre démarres-tu ton appli ?
Par quelle fenêtre démarres-tu ton appli ?
celle ci celle ou j'ai le code que j’appelle la fenetre "demarrage" mais c'est pas parce qu’on appelle une fonction dessus qu'elle ce lance à chaque fois qu'on vas y prendre une info si ?
@vidou : te rends-tu comptes que depuis le début de ton sujet : tu ne sais pas ce que tu fais, ou tu vas et les éléments pour pouvoir t'aider tombent au compte goutte ....o_O
perso je décroche ....
bon courage aux autres...
PS : juste 1 conseil : avant de faire du beau (fondu..etc....) on mise sur la fonctionnalité ....ca t'évitera bien des surprises....
non depuis le début mon problème c'est que mon application redémarre quand j'appelle une fonction sur ma page de démarrage. c'est ce que je dis depuis le début. Je dis aussi que j'ai contourné le problème avec de la "bidouille" mais que j'aimerais cibler le problème. Le problème reste le même tout du long !
Si.
Si tu l'as fermée elle est réouverte et exècute son code.
fait juste un hide ou passe une instance de la classe "propriété" à tes nouvelles fenêtres (avec un new surchargé par exemple)
De plus
écrabouille systèmatiquement ton fichier de config
Code : Sélectionner tout - Visualiser dans une fenêtre à part Demarrage.EcritDataXMLPropriétés("Propriétées.xml", Paramètres)
C'est pour éviter cela que j'ai fait cette méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Sub LitParametres(ByVal FileName As String)
ok je pensais pas que ça lançait tout le code :/ Du coup si je fais un fichier de code avec tout ça et que je vais le chercher dans mon fichier de code ça marcherait pas ? Dans visual studio 2013 (et surement les autres aussi) j'ai "ajouter une feuille de code" ! j'ai essayé de taper des truc dedans mais ce n'est pas aussi clair qu'avec "demarrage.cequejecherche" :/ ce serait pas un bon compromis ? enfin si c'est possible quoi... sinon je ferais comme vous dites
On ne sais pas quand et comment tu ouvres ta fenêtre "paramètres" ?
Idem pour moi
Il y a que Hervé qui se lance dans l'usine à gaz...
Vidou:
tu dis:
Or tu fais appel à une fonction qui (dans le cadre d'une exeption) fait ceci :le logiciel lance une seconde fois l'application. Une idée quelqu'un svp ?
C'est un peu logique qu s'il passe par l'exception qu'il redémarre non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.Windows.Forms.Application.Restart()
D'ailleurs pourquoi une fonction déjà?
Pourquoi redémarrer l'application?
Pourquoi pour lire et écrire dans un fichier tu fais toute cette gymnastique cérébrale si peu conseillée?
Est-ce une punition quelconque qu'on t'a infligé?
haha ^^ je vois que je m'exprime super mal en fait et j'en suis désolé :/ je ne vais pas continuer à essayer de vous expliquer ce que je fais depuis tout à l'heure. Merci quand même d'avoir pris de votre temps pour essayer de m'aider et me comprendre !
Lorsqu'on n'arrive pas à expliquer ce qu'on fait ou ce qu'on veut faire il faut dors et déjà se dire que l'implémentation en sera d'autant plus difficile !
La 1ère étape du développement d'un projet consiste à en expliquer dans les détails son fonctionnement sans aucune ambiguité sinon tu vas droit dans le mur, saches-le
FIN DU HS messieurs.
j'ouvre ma fenetre paramètres avec un menu item quand je clique sur paramètres dans une page qu'il y a entre ma page de demarrage (qui elle reste juste le temps du timer et ce ferme) et ma page paramètres. En gros j'ai comme pages Demarrage, Page-d'accueuil, (dans ma page d'accueuil j'ai connexion des eleves connexion enseignant etc etc ça ça marche, et dans le menu j'ai fichier etc edition paramètres. Je l'ouvre par là) !
Bonjour,
Moi, ce que je pense de tout cela, c'est que l'on peut gérer les paramètres extrêmement facilement avec My.Settings.
À moins que tous les paramètres doivent être tous différents pour tous les utilisateurs, tout ce code-là est carrément inutile.
À moins d'être bien malchanceux, c'est un nombre restreint de paramètres qui sont vraiment personnels; et j'ai l'impression profonde qu'il existe sûrement des solutions moins lourdes que de roman-là pour en tenir compte.
Désolé de "casser le party", si c'est l'impression que je donne.
Ajout subséquent
Puisque le code est supposé gérer des paramètres utilisateurs, il y en a probablement, par exemple des mots de passe, qui devraient être sécurisés, et pas mis dans un vulgaire fichier XML qui peut être lu dans le bloc-notes. Mais bon...
Bon, il me semble que je vois l'enchaînement des fenêtres (démarrage -> acceuil -> paramètres)
Dans "démarrage" ne rien faire d'autre que le fondu
dans "Pagedaccueil" qui contient le menu et reste active tout au long de l'application (à confirmer)
et dans la fenêtre "paramètres "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Public Class Pagedaccueil Public Property Paramètres As Propriétés Private Sub Pagedaccueil_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load LitParametres("Propriétées.xml") End Sub Public Sub LitParametres(ByVal FileName As String) If System.IO.File.Exists(FileName) Then ' existe : lit le fichier avec la méthode qui renvoie une instance Paramètres = LitDataXMLPropriétés(FileName) 'Créé une instance "Paramètres" Propriétés qui contient les données du fichier "Propriétées.xml"' Else ' n'existe pas : cré l'instance et le fichier Paramètres = New Propriétés 'Créé un une instance "Propriétés"' EcritDataXMLPropriétés(FileName, Paramètres) 'L'écrit' dans un fichier End If End Sub ' gestion des accés fichiers ... Public Function LitDataXMLPropriétés(ByVal filename As String) As Propriétés 'Créé la fonction lecture du fichier xml' '... Public Sub EcritDataXMLPropriétés(ByVal filename As String, paramètres As Propriétés) ' ....
Pour info : pour être plus propre il aurait fallu faire une classe acces fichier qui gére la propriété "Paramètre" et tous les accés fichier (lit..., ecrit...), créer une instance dans acceuil et passer cette instance en paramètre du constructeur de la fenêtre paramètres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Boutton_Valider_Click(sender As Object, e As EventArgs) Handles Boutton_Valider.Click Pagedaccueil.Paramètres.Act_MDP.Autor_MDP = Check_Autor_Modif_MDP.Checked Pagedaccueil.EcritDataXMLPropriétés("Propriétées.xml", Pagedaccueil.Paramètres) Me.Close() End Sub
pour ouvrir une autre fenêtre, on cré une instance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Pagedaccueil.Show() ' à bannir dim pa as Pagedaccueil = new Pagedaccueil pa.show()
Salut Clément,
Ton message est passé pendant que j'écrivais.
Efectivement, les settings sont une bonne option, mais comme on ne savais pas ce qu'il voulait faire, ...
Bon je vais reprendre avec tous les éléments et vous détailler mon programme. Pour ce qui est du code dites moi ce dont vous avez besoin car il y en à quand même beaucoup.
C'est un programme qui va permettre à des élèves de différentes classes de faire des exercices (d'espagnol en l'occurrence) d’évaluer leur niveau en fonction des réponses données etc.
Chaque élève aura donc sa session sur le logiciel. Par session j'entends login mot de passe.
Dans un fichier xml que je crypterais et décrypterais par la suite, j'aurais donc mes classes, mes élèves les noms prenoms devoirs fait devoirs non fait et les notes de chaque devoirs.
Tout ceci sera bien évidement crypté.
Ensuite il y a dans ce fichier les informations sur l'administrateur du programme (l'enseignent donc) avec son nom prenom identifiant mot de passe pareil.
Et pour finir il y aura les exercices avec reponses etc toujours cryptés.
A part de ce fichier, j'ai un fichier paramètres ou je rentre quelques options pour l’instant j'ai pas trop réfléchis à tout mais j'ai la modification du fond d'écran différents thèmes autoriser les élèves à changer leur mot de passe par un personnel ou pas etc. Tout ceci fonctionne très bien.
Le déroulement de mon programme est le suivant :
On lance le programme.
Événement load : on lit les paramètres que l'on stocke dans un objet. Si le fichier de paramètres n'existe pas on en créé un avec une configuration de base.
On lance un fondu sur une fenêtre (fondu montant) on attends car c'est un gif, que l'animation ce passe, puis on fini en fondu descendant et on ferme la première page.
Page 2 : Page d’accueil.
On décrypte le fichier, on lis le fichier, on stocke les informations dans un autre objet.
On à de quoi se connecter avec l'identifiant élève ou si on est professeur, l'identifiant administrateur. (il en va de même avec le mot de passe).
On dissocie les 2 parties en partageant l'écran en 2 avec des textbox et des boutons "connexion" : Textbox_identifiant_elève positioné à droite, celui de l'enseignant à gauche.
Si aucun fichier élève n'est présent, alors on en créé un avec l'identifiant et le mot de passe par défaut de l'administrateur.
Celui ci aura donc accès à son compte et pourra ajouter des élèves des cours voir les résultats des élèves etc dans d'autres pages.
Si un compte élève existe, alors l'élève peut se connecter à son compte et commencer ses exercices ou voir ses résultats.
Chacun des partis (enseignant ou élève) à ses forms différentes : connexion élève ouvre des forms que connexion enseignant n'ouvre pas et vice et versa.
Dans ma page d’accueil, j'ai un menu déroulant, qui contient fichier édition etc... Dans édition, j'ai une partie paramètres qui me permet de changer les valeurs de mon fichier XML contenant les paramètres.
Lorsque j'appuis sur valider dans ma feuille de paramètres donc, je reviens dans ma première page celle de démarrage, qui m'enregistre mon fichier Paramètres.xml Mais qui par la même occasion, et c'est la qu’intervient mon problème, me lance une seconde fois mon programme.
Il y à plein d'autres choses ensuite mais je ne les utilises pas dans cette partie du logiciel.
Pour faire simple, il ne faut pas revenir sur la page démarrage
Il faut revenir sur la page d'acceuil qui contient le menu et les accès élèves/enseignants. C'est de cette page que les différents traitements/accés fenêtres seront fait. Et si nécessaire (fenêtre acceuil fermée) passer les objets utiles aux autres fenêtres en paramètre.
Bonjour,
Visual Studio permet des solutions "modulaires", un peu comme des blocs de construction. Donc, dans ce que Microsoft appelle une solution, tu peux inclure plusieurs projets, lesquels peuvent être plus ou moins interdépendants. Chaque projet a, en standard, son propre fichier de configuration app.config, et tu n'est même pas obligé d'avoir tous tes projets "présents" en commençant. Tu peux les ajouter au fur et à mesure des besoins.
Si tu me demandes mon avis, je verrais au moins cinq projets distincts :
Interface Professeur
Interface Étudiant
Création des exercices
Exécution des exercices
Gestion des données et/ou, disons, Statistiques
Et, visiblement, une grande partie des projets, peut-être réalisée indépendamment des autres. Et, cela sera probablement mieux et plus facile à compléter qu'un seul projet-mammouth qui va essayer de tout faire tout seul.
Ajout pour Hervé: C'était à mon tour de télescoper ta réponse.
Tu vas le noyer là.
A mon avis une BDD aurait été mieux que des fichiers XML.
Salut à tous.
Merci pour votre aide, j'ai donc mis toutes mes fonctions lecture/écriture dans ma page d’accueil et ça fonctionne.
Mais vous pensez qu'un fichier XML à gérer c'est trop compliqué ?
En fait j'avais commencé par un fichier txt crypté, puis on m'à diriger vers un fichier xml (je ne connaissait pas), j'ai lue pas mal d'info de tuto cours etc pour comprendre ce que c’était et comment l'utiliser.
Je commence à le comprendre assez correctement maintenant même si parfois je galère un peut !
Mais pour ce qui est de la base de donnée, j'avoue que les cours que j'ai vue dessus :/ ça m'a l'air assez complexe en fait.
Le seul problème que je peux rencontrer avec mes fichier XML c'est quoi ? de charger la ram ou le processeur du pc pendant qu'il fait le traitement de données non ? c'est le seul souci ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager