<?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[Problem mit dem füllen eines StringGrid]]></title><description><![CDATA[<p>Hallo,<br />
ich hätt da mal eine Frage...<br />
Ich habe einen Frame in dem ein StringGrid liegt welches mit Daten gefüllt werden soll die über Get-Methoden besorgt werden.<br />
Die Spalten-Überschriften klappen jetzt auch, aber wenn ich die Methode aufruf die die Inhalte zeichnen soll dann klappt's nicht!?<br />
Bekomme beim ausführen einene EA-Accessviolation, würde ja auch sagen das kein Specher reserviert ist, aber es klappt ja im Konstruktor von TFrameTable alles super... Wäre nett wenn mir jemand erklären könnte warum das so ist wie es ist und was genau ich falsch mache. (Bzw. wie's genau mit Speicher laufen muss) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Code der Klasse</p>
<pre><code class="language-cpp">//-----------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;FrameTableU.h&quot;
//-----------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TFrameTable *FrameTable;

//-----------------------------------------------------------------------
//Konstruktor: Verfasser: Georg, Zweck: Beschriftet zuerst die einzelenen
//						 Spalten. Schnittstellen: Keine
//-----------------------------------------------------------------------
__fastcall TFrameTable::TFrameTable(TComponent* Owner)
	: TFrame(Owner)
{
	// Spalten-Überschriften eintragen:
	for(int ilCol = 1; ilCol &lt; Table-&gt;ColCount; ilCol++)
	Table-&gt;Cells[0][0] = &quot;ID&quot;;
	Table-&gt;Cells[1][0] = &quot;Variante&quot;;
	Table-&gt;Cells[2][0] = &quot;Höhe&quot;;
	Table-&gt;Cells[3][0] = &quot;Breite&quot;;
	Table-&gt;Cells[4][0] = &quot;Tiefe&quot;;
	Table-&gt;Cells[5][0] = &quot;Gewicht (kg)&quot;;
}

//-----------------------------------------------------------------------
//FillList: Verfasser: Georg, Zweck: Bekommt eine Referenz der angelgten
//					Liste und die Variablen der einzelnen Objekte aus und füllt
//					damit die Tabelle. Schnittstellen: Keine
//-----------------------------------------------------------------------
void __fastcall TFrameTable::FillList( TList *_myList)
{
	int row = 1;
	for( row = 1; row &lt;= _myList-&gt;Count; row++)
	{
		TContainer *Container = ( TContainer *) _myList-&gt;Items[row-1];
		int rcount = Table-&gt;RowCount; //nur zum Test. Hier kommt Fehler
		Table-&gt;Cells[0][row-1] = IntToStr( Container-&gt;GetID( ));
		Table-&gt;Cells[1][row-1] = IntToStr( Container-&gt;GetVariante( ));
		Table-&gt;Cells[2][row-1] = FloatToStr( Container-&gt;GetHeight( ));
		Table-&gt;Cells[3][row-1] = FloatToStr( Container-&gt;GetWidth( ));
		Table-&gt;Cells[4][row-1] = FloatToStr( Container-&gt;GetDepth( ));
		Table-&gt;Cells[5][row-1] = FloatToStr( Container-&gt;GetWeight( ));
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/149925/problem-mit-dem-füllen-eines-stringgrid</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 06:28:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149925.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Jun 2006 15:06:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit dem füllen eines StringGrid on Sun, 11 Jun 2006 15:06:27 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich hätt da mal eine Frage...<br />
Ich habe einen Frame in dem ein StringGrid liegt welches mit Daten gefüllt werden soll die über Get-Methoden besorgt werden.<br />
Die Spalten-Überschriften klappen jetzt auch, aber wenn ich die Methode aufruf die die Inhalte zeichnen soll dann klappt's nicht!?<br />
Bekomme beim ausführen einene EA-Accessviolation, würde ja auch sagen das kein Specher reserviert ist, aber es klappt ja im Konstruktor von TFrameTable alles super... Wäre nett wenn mir jemand erklären könnte warum das so ist wie es ist und was genau ich falsch mache. (Bzw. wie's genau mit Speicher laufen muss) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Code der Klasse</p>
<pre><code class="language-cpp">//-----------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;FrameTableU.h&quot;
//-----------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TFrameTable *FrameTable;

//-----------------------------------------------------------------------
//Konstruktor: Verfasser: Georg, Zweck: Beschriftet zuerst die einzelenen
//						 Spalten. Schnittstellen: Keine
//-----------------------------------------------------------------------
__fastcall TFrameTable::TFrameTable(TComponent* Owner)
	: TFrame(Owner)
{
	// Spalten-Überschriften eintragen:
	for(int ilCol = 1; ilCol &lt; Table-&gt;ColCount; ilCol++)
	Table-&gt;Cells[0][0] = &quot;ID&quot;;
	Table-&gt;Cells[1][0] = &quot;Variante&quot;;
	Table-&gt;Cells[2][0] = &quot;Höhe&quot;;
	Table-&gt;Cells[3][0] = &quot;Breite&quot;;
	Table-&gt;Cells[4][0] = &quot;Tiefe&quot;;
	Table-&gt;Cells[5][0] = &quot;Gewicht (kg)&quot;;
}

//-----------------------------------------------------------------------
//FillList: Verfasser: Georg, Zweck: Bekommt eine Referenz der angelgten
//					Liste und die Variablen der einzelnen Objekte aus und füllt
//					damit die Tabelle. Schnittstellen: Keine
//-----------------------------------------------------------------------
void __fastcall TFrameTable::FillList( TList *_myList)
{
	int row = 1;
	for( row = 1; row &lt;= _myList-&gt;Count; row++)
	{
		TContainer *Container = ( TContainer *) _myList-&gt;Items[row-1];
		int rcount = Table-&gt;RowCount; //nur zum Test. Hier kommt Fehler
		Table-&gt;Cells[0][row-1] = IntToStr( Container-&gt;GetID( ));
		Table-&gt;Cells[1][row-1] = IntToStr( Container-&gt;GetVariante( ));
		Table-&gt;Cells[2][row-1] = FloatToStr( Container-&gt;GetHeight( ));
		Table-&gt;Cells[3][row-1] = FloatToStr( Container-&gt;GetWidth( ));
		Table-&gt;Cells[4][row-1] = FloatToStr( Container-&gt;GetDepth( ));
		Table-&gt;Cells[5][row-1] = FloatToStr( Container-&gt;GetWeight( ));
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1075648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075648</guid><dc:creator><![CDATA[XesperantoX]]></dc:creator><pubDate>Sun, 11 Jun 2006 15:06:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dem füllen eines StringGrid on Sun, 11 Jun 2006 15:16:01 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>for( row = 1; row &lt;= _myList-&gt;Count; row++)</p>
</blockquote>
<p>In C++ werden Arrays mit x Elementen von 0 bis x-1 indiziert. (Leider ist die VCL da nicht konzequent, bei AnsiString gilt die Delphi-Indizierung. Bei TList hingegen ist C++)</p>
<p>Übrigens : was soll diese For-Schleife bezwecken?</p>
<pre><code class="language-cpp">for(int ilCol = 1; ilCol &lt; Table-&gt;ColCount; ilCol++)
    Table-&gt;Cells[0][0] = &quot;ID&quot;;
    Table-&gt;Cells[1][0] = &quot;Variante&quot;;
    Table-&gt;Cells[2][0] = &quot;Höhe&quot;;
    Table-&gt;Cells[3][0] = &quot;Breite&quot;;
    Table-&gt;Cells[4][0] = &quot;Tiefe&quot;;
    Table-&gt;Cells[5][0] = &quot;Gewicht (kg)&quot;;
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075655</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 11 Jun 2006 15:16:01 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dem füllen eines StringGrid on Sun, 11 Jun 2006 15:28:12 GMT]]></title><description><![CDATA[<p><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="😉"
    /> ups, das sind noch Reste aus der &quot;Inspiration&quot; für die Überschriften!</p>
<p>Hmm, aber in der Schleife sag ich ja durch das _myList-&gt;Count das für jedes Element in der Liste eine Zeile benutzt werden soll, oder? Die Zeile 0 laß ich weg weil diese schon durch die Überschrift belegt ist und der Rest folgt in der Schleife.<br />
Hab leider keinen blassen Schimmer von Delphi!</p>
<p>Was ich nicht verstehe ist das ich im Konstruktor auf Table zugreifen kann aber sobald ich versuche in der FillList-Methode zuzugreifen ich die AccessViaolation bekomm!?</p>
<p>Grüße<br />
Sascha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075661</guid><dc:creator><![CDATA[XesperantoX]]></dc:creator><pubDate>Sun, 11 Jun 2006 15:28:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dem füllen eines StringGrid on Sun, 11 Jun 2006 15:36:54 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>In C++ werden Arrays mit x Elementen <strong>von 0 bis x-1</strong> indiziert</p>
</blockquote>
<p>Was ist daran nicht zu verstehen?</p>
<p>So muß es korrekt aussehen, wenn man davon ausgeht das in der TList x Elemente sind, und in dem StringGrid x+1 Zeilen vorhanden sind, wobei die erste für die Titel reserviert ist</p>
<pre><code class="language-cpp">for(int row = 0; row &lt; _myList-&gt;Count; row++)
{
  TContainer *Container = ( TContainer *) _myList-&gt;Items[row];
  int rcount = Table-&gt;RowCount; //nur zum Test. Hier kommt Fehler
  Table-&gt;Cells[0][row+1] = IntToStr( Container-&gt;GetID( ));
  Table-&gt;Cells[1][row+1] = IntToStr( Container-&gt;GetVariante( ));
  Table-&gt;Cells[2][row+1] = FloatToStr( Container-&gt;GetHeight( ));
  Table-&gt;Cells[3][row+1] = FloatToStr( Container-&gt;GetWidth( ));
  Table-&gt;Cells[4][row+1] = FloatToStr( Container-&gt;GetDepth( ));
  Table-&gt;Cells[5][row+1] = FloatToStr( Container-&gt;GetWeight( ));
}
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075664</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 11 Jun 2006 15:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dem füllen eines StringGrid on Sun, 11 Jun 2006 15:55:06 GMT]]></title><description><![CDATA[<p>Das mit der C++ Indizierung hab ich verstanden, aber die von Deplphi kenn ich nicht! <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="😉"
    /><br />
Aber okay, jetzt hab ich das verstanden warum's vorher falsch war.</p>
<p>Aber auf Table kann ich immer noch nicht zugreifen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Im Debugger sind eigentlich alle Werte korekt, alerdings zeigt &quot;this&quot; in FillList auf NULL, das macht mich ein wenig stutzig. Ich bekomm nicht einmal die Zeile &quot;rcount = Table-&gt;RowCount&quot; ausgeführt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075673</guid><dc:creator><![CDATA[XesperantoX]]></dc:creator><pubDate>Sun, 11 Jun 2006 15:55:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dem füllen eines StringGrid on Sun, 11 Jun 2006 17:02:20 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>und was sollen wir jetzt dazu sagen? in deinem Codeausschnitt ist nirgends zusehen, wo und wie Table deklariert und initialisiert wird. Außerdem ist nicht ersichtlich wo FillList aufgerufen wird. Denn wenn this NULL ist heißt das das du über einen NULL-Pointer als Form auf die Methode zugreifst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1075728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1075728</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 11 Jun 2006 17:02:20 GMT</pubDate></item></channel></rss>