[Débutante] Sérialisation Winform

Sérialisation Winform [Débutante] - C++ - Programmation

Marsh Posté le 14-12-2006 à 11:12:46    

Bonjour,
 
Je débute avec Visual C++, et je travaille actuellement sur une application qui lance une fenêtre  principale qui permet à son tour de lancer d'autre fenêtres. Je voudrais, à la fermeture de mon application,  pouvoir enregistrer,  par exemple, la disposition des fenêtres générées avant la fermeture pour qu'au relancement de mon appli elles réapparaissent au  même endroit. Je me suis renseigner sur la  sérialisation, mais à dire vrai, je  n'y comprends pas grand chose.
 
Mon application utilise les winforms et ne fait pas intervenir des MFC.
 
Y'aurait-il quelqu'un pour m'éclairer.
 
Je crois que le code ci-dessous c'est pour faire connaître ma classe pour la sérialisation.
 
[System::Xml::Serialization::XmlInclude(Form1::typeid)]
public ref class Form1 : public System::Windows::Forms::Form
 
Et voici le code qu'on ma fourni pour sérialiser
 
System::Xml::Serialization::XmlSerializer ^ sr;
 sr = gcnew System::Xml::Serialization::XmlSerializer(MaClasse::typeid);
 System::IO::StreamWriter ^ writer = gcnew System::IO::StreamWriter("fichier.xml" );
try
{
  sr->Serialize(writer, monObjetASerialiser);
}
 
 
Que dois-je mettre à la place des variable MaClasse, je pensais mettre Form1 et que dois-je mettre alors à la place de monObjetASerialiser?
 
Si vous pouviez m'éclairer.

Reply

Marsh Posté le 14-12-2006 à 11:12:46   

Reply

Marsh Posté le 14-12-2006 à 11:22:52    

Le 90C c'est pour attirer le chaland ?

Reply

Marsh Posté le 14-12-2006 à 11:34:02    

Mouais ptet ms je préférais avoir des réponses à mes questions plutôt que de telles reamrques.

Reply

Marsh Posté le 14-12-2006 à 11:45:51    

Ah ça, atterrir sur une section de forum composée à 99.9% de mecs :D Pour MaClasse, ça doit effectivement être Form1, pour monObjectASerialiser ça doit être l'instance ?

Reply

Marsh Posté le 14-12-2006 à 11:54:05    

Amelia90C a écrit :

Mouais ptet ms je préférais avoir des réponses à mes questions plutôt que de telles reamrques.


change de pseudo ou arrete la prog :o
Faut pas annoncer la couleur non plus, moi je me sens obligé de dire quelque chose quoi :o
 
Sinon t'as lu ce genre de docs ? http://www.codeproject.com/cpp/xmlserialization.asp


---------------
Töp of the plöp
Reply

Marsh Posté le 14-12-2006 à 12:05:23    

Mais elle ressemble a quoi l'instance de form1?
 
Et ma méthode de sérialisation faut bien que je la mette dans mon fichier projet principal?

Reply

Marsh Posté le 14-12-2006 à 13:01:38    

Amelia90C a écrit :

Mais elle ressemble a quoi l'instance de form1?


bah à this si tu es dans form1, et à un pointeur sur form ailleurs...
 

Amelia90C a écrit :

Et ma méthode de sérialisation faut bien que je la mette dans mon fichier projet principal?


pourquoi ?


---------------
Töp of the plöp
Reply

Marsh Posté le 14-12-2006 à 15:41:39    

J'ai écrit coder ça :
 
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
   System::Xml::Serialization::XmlSerializer ^ sr;
   sr = gcnew System::Xml::Serialization::XmlSerializer(note::typeid);
   System::IO::StreamWriter ^ writer = gcnew System::IO::StreamWriter("fichier.xml" );
   try
   {
     sr->Serialize(writer, this);
   }  
   catch (Exception ^ e)
   {
    System::String ^ message = e->InnerException->Message->ToString();
    this->textBox1->Text=message;
    //AfxMessageBox("Impossible de sérialiser" );
   }
  }
 
ça bug sur le typeid.
 
Comment je peux résoudre ça...
 
Merci

Reply

Marsh Posté le 14-12-2006 à 16:49:00    

Amelia90C a écrit :

J'ai écrit coder ça :
 
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
   System::Xml::Serialization::XmlSerializer ^ sr;
   sr = gcnew System::Xml::Serialization::XmlSerializer(note::typeid);
   System::IO::StreamWriter ^ writer = gcnew System::IO::StreamWriter("fichier.xml" );
   try
   {
     sr->Serialize(writer, this);
   }  
   catch (Exception ^ e)
   {
    System::String ^ message = e->InnerException->Message->ToString();
    this->textBox1->Text=message;
    //AfxMessageBox("Impossible de sérialiser" );
   }
  }
 
ça bug sur le typeid.
 
Comment je peux résoudre ça...
 
Merci


 
- balises code
- quelle est l'erreur ?


---------------
Töp of the plöp
Reply

Marsh Posté le 14-12-2006 à 16:53:26    

Ca me dit que l'exception InvalidOperationException n'a pas été gérée.

Reply

Marsh Posté le 14-12-2006 à 16:53:26   

Reply

Marsh Posté le 17-12-2006 à 13:35:31    

C'est du .NET ça??

Reply

Marsh Posté le 17-12-2006 à 13:37:40    

Amelia90C a écrit :

Ca me dit que l'exception InvalidOperationException n'a pas été gérée.


Sans être expert je dirais que l'une de ces instructions peut lever une InvalidOperationException que tu n'a pas capturé:

Code :
  1. System::Xml::Serialization::XmlSerializer ^ sr;
  2. sr = gcnew System::Xml::Serialization::XmlSerializer(note::typeid);
  3. System::IO::StreamWriter ^ writer = gcnew System::IO::StreamWriter("fichier.xml" );


 
A vue de nez je pencherai pour la deuxième.

Reply

Marsh Posté le 17-12-2006 à 19:57:55    

rha punaise ce pseudo raccoleur... Il y en a vraiment qui n'ont peur de rien...
Déplorable :sweat:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed