<?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[undo]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte gerne in meiner CAD-Anwendung eine UNDO Funktion, wie man sie von MSWord etc. kennt, einbauen.<br />
In der TForm-Header hab ich eine universelle Struktur gebildet, die alle möglichen Figuren (Kreis, Strich, Viereck...Bitmap) aufnehmen kann.<br />
Auf Grundlage dieser Struktur bilde ich ein DynamicArray.</p>
<p>Header:</p>
<pre><code class="language-cpp">typedef struct
{AnsiString id;
 int x1,y1,x2,y2;
 bool on;
 TColor bkgrd, sbkgrd;
 AnsiString text;
 Graphics::TBitmap *bild;
} ELEMENT;
DynamicArray&lt;ELEMENT&gt; element;
</code></pre>
<p>Alles funktioniert soweit. (löschen neue Element einfügen usw)<br />
Sogar das Öffnen sowie Abspeichern, des DynamicArray, mittels StringStream funktioniert.</p>
<p>Da ich das DynamicArray in einem StringStream abspeichern kann, müsste es vielleicht eine Möglichkeit geben<br />
eine Undo Funktion zu realisieren.<br />
Ich weis aber nicht wie ich das am Besten anstellen soll????<br />
Oder ist mein Ansatz komplett falsch mit dem StringStream???<br />
Irgendwie hab ich auch schieß mein Programm so zu &quot;verprogrammieren&quot;, dass überhaupt nichts mehr funktioniert.<br />
Am meisten Kopfzerbrechen macht mir das Bitmap, da es für jedes element vorhanden ist, und ich bei der Undo Funktion zuviel Arbeitsspeicher verbrate würde.<br />
Vielleicht kann mir jemand einen Tipp geben.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159994/undo</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 04:27:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159994.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Sep 2006 17:27:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to undo on Wed, 20 Sep 2006 17:30:05 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte gerne in meiner CAD-Anwendung eine UNDO Funktion, wie man sie von MSWord etc. kennt, einbauen.<br />
In der TForm-Header hab ich eine universelle Struktur gebildet, die alle möglichen Figuren (Kreis, Strich, Viereck...Bitmap) aufnehmen kann.<br />
Auf Grundlage dieser Struktur bilde ich ein DynamicArray.</p>
<p>Header:</p>
<pre><code class="language-cpp">typedef struct
{AnsiString id;
 int x1,y1,x2,y2;
 bool on;
 TColor bkgrd, sbkgrd;
 AnsiString text;
 Graphics::TBitmap *bild;
} ELEMENT;
DynamicArray&lt;ELEMENT&gt; element;
</code></pre>
<p>Alles funktioniert soweit. (löschen neue Element einfügen usw)<br />
Sogar das Öffnen sowie Abspeichern, des DynamicArray, mittels StringStream funktioniert.</p>
<p>Da ich das DynamicArray in einem StringStream abspeichern kann, müsste es vielleicht eine Möglichkeit geben<br />
eine Undo Funktion zu realisieren.<br />
Ich weis aber nicht wie ich das am Besten anstellen soll????<br />
Oder ist mein Ansatz komplett falsch mit dem StringStream???<br />
Irgendwie hab ich auch schieß mein Programm so zu &quot;verprogrammieren&quot;, dass überhaupt nichts mehr funktioniert.<br />
Am meisten Kopfzerbrechen macht mir das Bitmap, da es für jedes element vorhanden ist, und ich bei der Undo Funktion zuviel Arbeitsspeicher verbrate würde.<br />
Vielleicht kann mir jemand einen Tipp geben.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141372</guid><dc:creator><![CDATA[dlonra]]></dc:creator><pubDate>Wed, 20 Sep 2006 17:30:05 GMT</pubDate></item><item><title><![CDATA[Reply to undo on Wed, 20 Sep 2006 18:38:16 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich glaube das die undo-Funktion nichts mit dem Speichern selber zu tun haben sollte, sondern nur rein zur Arbeitszeit zur Verfügung steht.<br />
Um die Undo-Funktion sauber einzubauen, must du als Voraussetzung den gesamten Datenbestand in Einzelschritte aufteilen können, aus denen du belibig oft das Gesamtresultat wieder aufbauen kannst. Dann ist die Undo-Sache einfach, du must ja nur das letzte Element wegnehmen und den Datenbestand anhand der restlichen Einzelschritte neu aufbauen.<br />
Mehr kann ich dazu nicht sagen, da fehlt mir der Überblick bei deinem Projekt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141403</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 20 Sep 2006 18:38:16 GMT</pubDate></item></channel></rss>