<?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[StringGrid - Breite von Spalten speichern und wieder auslesen]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte gerne die Breite von den Spalten in einem StringGrid speichern, und beim Programmstart wieder auslesen.</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">void __fastcall TForm1::single_stringgridDrawCell(TObject *Sender,
      int ACol, int ARow, TRect &amp;Rect, TGridDrawState State)
{
        TIniFile *Inifile = new TIniFile(ExtractFilePath(Application-&gt;ExeName)+&quot;singles.ini&quot;);
        int Gesammt = (Rect.Left + Rect.Width()) + Rect.Right;
        int Breite = Rect.Right;
        if(ACol != 0) {
                Breite = Rect.right + Rect.Width() - Inifile-&gt;ReadInteger(&quot;GridSize&quot;, AnsiString(ACol), Rect.Width());
        }
        Rect.Right = Gesammt - Breite;
        if(ARow != 0 &amp;&amp; (ARow % 2) == 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clLime;
        }
        else if(ARow != 0 &amp;&amp; (ARow % 2) != 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clYellow;
        }
        single_stringgrid-&gt;Canvas-&gt;FillRect(Rect);
        if(ACol != 0 &amp;&amp; ARow == 0) {
                Inifile-&gt;WriteInteger(&quot;GridSize&quot;, AnsiString(ACol), Rect.Right);
        }
        Inifile-&gt;UpdateFile();
        delete Inifile;
}
</code></pre>
<p>Die Felder werden zwar noch eingefärbt, aber<br />
die Senkrechten Feldbegrenzungslinien fehlen plötzlich.</p>
<p>Leider funktioniert dieser Code nicht.....<br />
Die Felder haben nun keine Begrenzung</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198493/stringgrid-breite-von-spalten-speichern-und-wieder-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 17:47:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198493.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Nov 2007 07:31:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 07:31:47 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte gerne die Breite von den Spalten in einem StringGrid speichern, und beim Programmstart wieder auslesen.</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">void __fastcall TForm1::single_stringgridDrawCell(TObject *Sender,
      int ACol, int ARow, TRect &amp;Rect, TGridDrawState State)
{
        TIniFile *Inifile = new TIniFile(ExtractFilePath(Application-&gt;ExeName)+&quot;singles.ini&quot;);
        int Gesammt = (Rect.Left + Rect.Width()) + Rect.Right;
        int Breite = Rect.Right;
        if(ACol != 0) {
                Breite = Rect.right + Rect.Width() - Inifile-&gt;ReadInteger(&quot;GridSize&quot;, AnsiString(ACol), Rect.Width());
        }
        Rect.Right = Gesammt - Breite;
        if(ARow != 0 &amp;&amp; (ARow % 2) == 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clLime;
        }
        else if(ARow != 0 &amp;&amp; (ARow % 2) != 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clYellow;
        }
        single_stringgrid-&gt;Canvas-&gt;FillRect(Rect);
        if(ACol != 0 &amp;&amp; ARow == 0) {
                Inifile-&gt;WriteInteger(&quot;GridSize&quot;, AnsiString(ACol), Rect.Right);
        }
        Inifile-&gt;UpdateFile();
        delete Inifile;
}
</code></pre>
<p>Die Felder werden zwar noch eingefärbt, aber<br />
die Senkrechten Feldbegrenzungslinien fehlen plötzlich.</p>
<p>Leider funktioniert dieser Code nicht.....<br />
Die Felder haben nun keine Begrenzung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407906</guid><dc:creator><![CDATA[_Peter_]]></dc:creator><pubDate>Thu, 22 Nov 2007 07:31:47 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 07:41:36 GMT]]></title><description><![CDATA[<p>Ok, ich bin nun ein wenig weiter:</p>
<p>Die richtige Größe wird nun übernommen,<br />
aber die Größe wird nur in den &quot;normalen&quot; Feldern übernommen, nicht aber<br />
in den grau Hinterlegten (FixedCols und FixedRows)<br />
Die behalten weiterhin diese Größe.</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">void __fastcall TForm1::single_stringgridDrawCell(TObject *Sender,
      int ACol, int ARow, TRect &amp;Rect, TGridDrawState State)
{
        TIniFile *Inifile = new TIniFile(ExtractFilePath(Application-&gt;ExeName)+&quot;singles.ini&quot;);
        int Gesammt = (Rect.Left + Rect.Width()) + Rect.Right;
        int Breite = Rect.Right;
        if(ACol != 0) {
                Breite = Rect.right + Rect.Width() - Inifile-&gt;ReadInteger(&quot;GridSize&quot;, AnsiString(ACol), Rect.Width());
        }
        Rect.Right = Gesammt - Breite;
        if(ARow != 0 &amp;&amp; (ARow % 2) == 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clLime;
        }
        else if(ARow != 0 &amp;&amp; (ARow % 2) != 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clYellow;
        }
        single_stringgrid-&gt;Canvas-&gt;FillRect(Rect);
        if(ACol != 0 &amp;&amp; ARow == 0) {
                Inifile-&gt;WriteInteger(&quot;GridSize&quot;, AnsiString(ACol), Rect.Width());
        }
        Inifile-&gt;UpdateFile();
        delete Inifile;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1407910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407910</guid><dc:creator><![CDATA[_Peter_]]></dc:creator><pubDate>Thu, 22 Nov 2007 07:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 09:28:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Warum nimmst du zur Einstellung der Breite nicht einfach ColWidths?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407965</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 22 Nov 2007 09:28:46 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 09:37:32 GMT]]></title><description><![CDATA[<p>Und TStringGrid::OnDrawCell ist eindeutig das falsche Event, um die Werte zu setzen. Und du speicherst anscheinend ja auch nur einen Wert: &quot;GridSize&quot;...</p>
<p>Also benutze ColWidths und lese die Spalten im Konstruktor deines Formulars und speichere sie im Destruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1407968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407968</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 22 Nov 2007 09:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 10:13:32 GMT]]></title><description><![CDATA[<p>Danke, ich wusste nicht, dass es dies gibt.<br />
Nun habe ich noch ein anderes Problem:<br />
Er überschreibt mir die Einträge in dem StringGrid.<br />
Ich fülle es mit Werten, aber Sie werden nicht angezeigt.</p>
<pre><code class="language-cpp">//Füllung der Überschrift

single_stringgrid-&gt;Cells[1][0]  = &quot;SP1&quot;;
single_stringgrid-&gt;Cells[2][0]  = &quot;SP2&quot;;
single_stringgrid-&gt;Cells[3][0]  = &quot;SP3&quot;;
</code></pre>
<pre><code class="language-cpp">//Funktion, die glaube ich die Ursache ist:
void __fastcall TForm1::single_stringgridDrawCell(TObject *Sender,
      int ACol, int ARow, TRect &amp;Rect, TGridDrawState State)
{
        if(ARow != 0 &amp;&amp; (ARow % 2) == 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clLime;
        }
        else if(ARow != 0 &amp;&amp; (ARow % 2) != 0 &amp;&amp; ACol != 0) {
                single_stringgrid-&gt;Canvas-&gt;Brush-&gt;Color = clYellow;
        }
        single_stringgrid-&gt;Canvas-&gt;FillRect(Rect);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1407992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1407992</guid><dc:creator><![CDATA[_Peter_]]></dc:creator><pubDate>Thu, 22 Nov 2007 10:13:32 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 10:28:05 GMT]]></title><description><![CDATA[<p>Wenn du dein Rechteck in OnDrawCell neu malst werden da ja deine Texte mit übermalt. Du mußt den Text in OnDrawCell auch noch mit ausgeben. Das ist ja auch so in der FAQ beschrieben.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39160.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39160.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408014</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 22 Nov 2007 10:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 10:58:50 GMT]]></title><description><![CDATA[<p>Aha, ok.</p>
<p>Das laden dauert bei 1600 Zellen (minimum) sehr lange.<br />
Kann man die Zellenhintergrundfarbe auch ausserhalb von OnDrawCell() ändern?<br />
Wenn ja, wie?<br />
Es ist ok, wenn ich jede Zelle einzelnd anwählen muss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408042</guid><dc:creator><![CDATA[_Peter_]]></dc:creator><pubDate>Thu, 22 Nov 2007 10:58:50 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 11:06:06 GMT]]></title><description><![CDATA[<p>Ich bezweifle das das an OnDrawcell liegt. Da werden immerhin nur die Zellen neu gezeichnet die auch zu sehen sind.<br />
Und, Nein, das geht nicht außerhalb davon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408047</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 22 Nov 2007 11:06:06 GMT</pubDate></item><item><title><![CDATA[Reply to StringGrid - Breite von Spalten speichern und wieder auslesen on Thu, 22 Nov 2007 11:47:36 GMT]]></title><description><![CDATA[<p>Stimmt, habe ich nun auch gesehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Schade, dass es nicht geht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408071</guid><dc:creator><![CDATA[_Peter_]]></dc:creator><pubDate>Thu, 22 Nov 2007 11:47:36 GMT</pubDate></item></channel></rss>