1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (this->TriggersRedactionSpace->Text != "")
{
if (LastSavedTempFilePath != "")
{
System::IO::StreamReader ^sr = gcnew System::IO::StreamReader(LastSavedTempFilePath);
if (this->TriggersRedactionSpace->Text == sr->ReadToEnd())
{
sr->Close();
Application::Exit();
}
else
{
sr->Close();
BOOL MessageBeep(MB_ICONEXCLAMATION);
if (MessageBox::Show("Les dernières modifications du document n'ont pas été enregistrées. Toutes les données non enregistrées seront perdues. Voulez-vous enregistrer votre document avant de quitter le programme ?", "Quitter sans sauvegarder", MessageBoxButtons::YesNo, MessageBoxIcon::Information) == System::Windows::Forms::DialogResult::Yes)
{
if (this->TriggersRedactionSpace->Text == sr->ReadToEnd())
{
System::IO::Stream ^s = this->EnregProjetActuel->OpenFile();
System::IO::StreamWriter ^sw = gcnew System::IO::StreamWriter(s);
sw->Write(this->TriggersRedactionSpace->Text);
sw->Close();
}
else
{
SaveFileDialog^ EnregProjetActuel = gcnew SaveFileDialog;
this->EnregProjetActuel->DefaultExt = L"h5t";
this->EnregProjetActuel->Filter = L"Fichiers Heroes V Triggers (*.h5t)|*.h5t|Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";
this->EnregProjetActuel->RestoreDirectory = true;
this->EnregProjetActuel->Title = L"Enregistrer une liste de déclencheurs";
if (this->EnregProjetActuel->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
System::IO::Stream ^s = this->EnregProjetActuel->OpenFile();
System::IO::StreamWriter ^sw = gcnew System::IO::StreamWriter(s);
sw->Write(this->TriggersRedactionSpace->Text);
sw->Close();
//Add in menu strip Recent Files
LastSavedTempFilePath = this->EnregProjetActuel->FileName->ToString();
if (this->videToolStripMenuItem->Text == "<vide>")
this->videToolStripMenuItem->Text = LastSavedTempFilePath;
else
if (this->videToolStripMenuItem1->Text == "<vide>")
this->videToolStripMenuItem1->Text = LastSavedTempFilePath;
else
if (this->videToolStripMenuItem2->Text == "<vide>")
this->videToolStripMenuItem2->Text = LastSavedTempFilePath;
else
if (this->videToolStripMenuItem3->Text == "<vide>")
this->videToolStripMenuItem3->Text = LastSavedTempFilePath;
else
if (this->videToolStripMenuItem4->Text == "<vide>")
this->videToolStripMenuItem4->Text = LastSavedTempFilePath;
else
this->videToolStripMenuItem->Text = LastSavedTempFilePath;
LastSavedTempFilePath->Replace("\\", "\\\\"); //So it can be used by the application
}
}
}
else
Application::Exit();
}
}
}
} |
Partager