<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SetModifiedFlag() wird nicht gesetzt]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Beim speichern eines Dokuments aus meinem Programm heraus füge ich der Datei am Anfang nach einem kleinen Programm-Header eine Versions-Information hinzu. Diese nutze ich um bei möglichen Neuerungen im Programm auch alte Dateien öffnen und unter Umständen auch konvertieren zu können.</p>
<p>Soweit alles kein Problem.</p>
<p>Nun geschieht folgendes, wenn der Benutzer eine alte Datei einliest:</p>
<pre><code class="language-cpp">void CxxxDoc::Serialize(CArchive&amp; ar)
	{
	if (ar.IsStoring())
		SaveProject(ar);
	else
		ReadProject(ar);
	}

void CxxxDoc::ReadProject(CArchive &amp;ar)
	{
    // ... Header einlesen und prüfen

    // ... Datei-Version einlesen

    // ... Daten auslesen

    // Eingelesenen Daten aktualisieren, wenn alte Version
	if (fileVersion == VERSION_100)
		{
		UpdateDataFrom100();
		SetModifiedFlag();
		}
	}
</code></pre>
<p>Das Problem ist nun, dass das Modified-Flag nicht wirklich gesetzt wird, obwohl die Methode SetModifiedFlag() aufgerufen wird. Dh. wenn der Benutzer keine Änderungen im Programm vornimmt, bei denen wiederum SetModifiedFlag() aufgerufen wird, und das Dokument schließt kommt keine &quot;Speichern&quot;-Meldung.</p>
<p>Woran könnte das liegen? Wird das Modified-Flag möglicherweise nach dem einlesen irgendwo wieder automatisch auf false gesetzt? Mein Programmcode macht es auf jeden Fall nirgends...</p>
<p>danke, mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173349/setmodifiedflag-wird-nicht-gesetzt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 22:19:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173349.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Feb 2007 12:55:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SetModifiedFlag() wird nicht gesetzt on Wed, 14 Feb 2007 12:55:52 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Beim speichern eines Dokuments aus meinem Programm heraus füge ich der Datei am Anfang nach einem kleinen Programm-Header eine Versions-Information hinzu. Diese nutze ich um bei möglichen Neuerungen im Programm auch alte Dateien öffnen und unter Umständen auch konvertieren zu können.</p>
<p>Soweit alles kein Problem.</p>
<p>Nun geschieht folgendes, wenn der Benutzer eine alte Datei einliest:</p>
<pre><code class="language-cpp">void CxxxDoc::Serialize(CArchive&amp; ar)
	{
	if (ar.IsStoring())
		SaveProject(ar);
	else
		ReadProject(ar);
	}

void CxxxDoc::ReadProject(CArchive &amp;ar)
	{
    // ... Header einlesen und prüfen

    // ... Datei-Version einlesen

    // ... Daten auslesen

    // Eingelesenen Daten aktualisieren, wenn alte Version
	if (fileVersion == VERSION_100)
		{
		UpdateDataFrom100();
		SetModifiedFlag();
		}
	}
</code></pre>
<p>Das Problem ist nun, dass das Modified-Flag nicht wirklich gesetzt wird, obwohl die Methode SetModifiedFlag() aufgerufen wird. Dh. wenn der Benutzer keine Änderungen im Programm vornimmt, bei denen wiederum SetModifiedFlag() aufgerufen wird, und das Dokument schließt kommt keine &quot;Speichern&quot;-Meldung.</p>
<p>Woran könnte das liegen? Wird das Modified-Flag möglicherweise nach dem einlesen irgendwo wieder automatisch auf false gesetzt? Mein Programmcode macht es auf jeden Fall nirgends...</p>
<p>danke, mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228707</guid><dc:creator><![CDATA[suamikim]]></dc:creator><pubDate>Wed, 14 Feb 2007 12:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to SetModifiedFlag() wird nicht gesetzt on Thu, 15 Feb 2007 08:51:07 GMT]]></title><description><![CDATA[<p>Soweit ich mich erinnern kann, wird in CDocument nach dem Aufruf von Serialize SetModifiedFlag(FALSE) aufgerufen. Die Sache hat natürlich duchaus seinen Sinn, denn wenn man auf Speichern klickt oder eine Datei neu öffnet, dann sollte ja ModifiedFlag auf FALSE sein.</p>
<p>Es gibt übrigens eine weitere Funktion die man überschreiben kann, OpenDocument oder sowas heisst sie. Wenn du SetModifiedFlag(TRUE) nach dem Aufruf der Basis-Funktion aufrufst, sollte es gehen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229231</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 15 Feb 2007 08:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to SetModifiedFlag() wird nicht gesetzt on Thu, 15 Feb 2007 09:05:43 GMT]]></title><description><![CDATA[<p>Jo, danke, gerade getestet und funktioniert einwandfrei!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1229242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1229242</guid><dc:creator><![CDATA[suamikim]]></dc:creator><pubDate>Thu, 15 Feb 2007 09:05:43 GMT</pubDate></item></channel></rss>