IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

[C++/CLI] Comment sérialiser un winform et ses controles


Sujet :

C++/CLI

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 17
    Points
    17
    Par défaut [C++/CLI] Comment sérialiser un winform et ses controles
    Mon application ouvre dans une fenêtre secondaire un winform qui contient différents controls. Cette fenêtre secondaire est uniquement affichée et animée (modification des attribut des controls). Les controls sont identifiés par leur "name" et accédé avec "GetNextControl" à travers un objet form générique. Ces winforms ne contiennent que 2 types de controls, des labels et des pictureBox.
    Donc j'ai une cinquantaine de petits winforms que j'affiche chacun leur tour et que je manipule sans soucis.

    Maintenant, au lieu de devoir modifier les winforms avec l'éditeur de ressource de VS, et de devoir recompiler le projet à chaque modif, je voudrais sauvegarder mes petits winforms dans des fichiers lisibles (1 par winform si possible). Un peut à la manière des anciens fichiers ressources RC. Comme ça, si quelqu'un veut déplacer un control de 2 pixels il édite le fichier avec notpad, relance l'appli, et hop.

    J'ai pensé à chercher du coté de la sérialisation, car un petit fichier xml pour chaque winform me conviendrai bien. Mais visiblement les winforms et les controls ne se sérialize pas si facilement.

    Quelqu'un aurrait il une idée, ou une autre piste pour un résultat voisin ?
    Si je pouvais éviter de ré-inventer la roue et me créer un format de fichier spécifique, ce serait pas mal.

    PS : j'utilise VC++ 2005, mais si quelqu'un répond en C#, j'adapterai...

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Bonjour et bienvenue

    Il existe ceci:

    http://msdn.microsoft.com/msdnmag/issues/06/03/DesignerHosting/default.aspx
    (telecharge le sample, il devrait y avoir de la serialisation dedans)

    et cela:
    http://windowsforms.net/default.aspx?tabindex=6&tabid=47&ItemID=13&mid=142

    Tu devrais meme plus avoir besoin de notepad!

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Merci pour la réponse et le message de bienvenue. Rien que le 1er lien répond à ma question et même plus. L'editeur de winform fourni en exemple est un sacré plus pour le projet sur lequel je développe.
    J'étudie tous ça et je repasse dans quelques heures pour cocher la case "résolu".

    PS : Mais comment j'ai fait pour developper pendant tant d'années sans connaitre www.developpez.com merci Google ?

  4. #4
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    N'hesite pas a participer

    (et je me suis permis de quoter ton remerciement comme le veut la tradition)

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Conclusion :
    Merci Piotrek, la question est "résolue" et au cas ou cela servirait à quelqu'un, voici un lien vers la classe FormLoader (en C++) que je me suis fait :
    20060322_FormLoader.zip

    Cette classe permet d'instancier un form à partir d'un fichier XML comme dans l'exemple ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        ArrayList   ^errorsList;
        FormLoader  ^form;
     
        form = gcnew FormLoader();
        form->LoadFormFromXml("myForm.xml", errorsList);
     
        if ( errorsList->Count )
        {
             // Afficher le détail des erreurs contenues dans errorsList
        }
        else
            form->Show();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment lancer Eclipse en incluant ses plugins
    Par eclie dans le forum Eclipse Platform
    Réponses: 8
    Dernier message: 19/02/2009, 08h45
  2. [TabControl] Comment obtenir la suppression de ses controles ?
    Par maladebe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/09/2008, 19h07
  3. Réponses: 12
    Dernier message: 23/01/2008, 09h17
  4. Comment sauver un TTreeView et ses nodes data ?
    Par faimo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 19/04/2005, 13h48
  5. Comment copier un dossier et ses sous dossiers ?
    Par touhami dans le forum Langage
    Réponses: 5
    Dernier message: 30/12/2004, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo