<?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[einzelne Zellen in StringGrid deaktivieren?]]></title><description><![CDATA[<p>Ist es möglich (wenn ja, wie?), einzelne verstreute Zellen in einem StringGrid zu deaktivieren? So, dass sie nicht beschreibbar sind?</p>
<p>Mit Hilfe von DrawCell kann ich die Zellen, die nicht benötigt werden, grau hinterlegen, aber man kann immer noch etwas reinschreiben.</p>
<p>Danke für eine Antwort.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135707/einzelne-zellen-in-stringgrid-deaktivieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 01 Aug 2026 13:44:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135707.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 04 Feb 2006 12:36:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to einzelne Zellen in StringGrid deaktivieren? on Sat, 04 Feb 2006 12:36:44 GMT]]></title><description><![CDATA[<p>Ist es möglich (wenn ja, wie?), einzelne verstreute Zellen in einem StringGrid zu deaktivieren? So, dass sie nicht beschreibbar sind?</p>
<p>Mit Hilfe von DrawCell kann ich die Zellen, die nicht benötigt werden, grau hinterlegen, aber man kann immer noch etwas reinschreiben.</p>
<p>Danke für eine Antwort.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/985595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/985595</guid><dc:creator><![CDATA[Ingo]]></dc:creator><pubDate>Sat, 04 Feb 2006 12:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to einzelne Zellen in StringGrid deaktivieren? on Sat, 04 Feb 2006 12:48:23 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>siehe den Event <em>TDrawGrid::OnSelectCell</em> in der BCB-Hilfe.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/985601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/985601</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 04 Feb 2006 12:48:23 GMT</pubDate></item><item><title><![CDATA[Reply to einzelne Zellen in StringGrid deaktivieren? on Sun, 05 Feb 2006 08:31:34 GMT]]></title><description><![CDATA[<p>Ich muss nochmal zu etwas Grundsätzlichem nachhaken:</p>
<p>Wenn in der ersten Spalte, egal in welcher Zeile, &quot;AS&quot; eingegeben wird, soll die Zelle [3,2] grau hinterlegt werden. Wird das &quot;AS&quot; hingegen weggenommen, dann soll die Zelle wieder normal weiß gezeichnet werden.</p>
<p>Ich habe es so versucht, aber es läuft nicht (das ist jetzt ein Delphi-Beispiel, aber das Prinzip ist mit dem Builder identisch):</p>
<pre><code class="language-cpp">procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
    if (StringGrid1.Cells[1, ARow] = 'AS') then begin
    	with TStringGrid(Sender).Canvas do begin
       		if (ACol = 3) and (ARow = 2) then begin //hier geht nichts durch
            	Brush.Color:= clGray;
        		FillRect(Rect);
            end;
        end;
    end;
end;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/986215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986215</guid><dc:creator><![CDATA[Ingo]]></dc:creator><pubDate>Sun, 05 Feb 2006 08:31:34 GMT</pubDate></item><item><title><![CDATA[Reply to einzelne Zellen in StringGrid deaktivieren? on Sun, 05 Feb 2006 11:05:00 GMT]]></title><description><![CDATA[<p>&quot;Läuft nicht&quot; ist keine ausreichende Problembeschreibung.</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &amp;Rect, TGridDrawState State)
{
  // Zelle [3,2] soll gezeichnet werden
  if (ACol == 3 &amp;&amp; ARow == 2)
  {
    // also prüfen, ob irgendwo in Spalte 2 (gezählt wird von Null)
    // der gesuchte String steht
    if (StringGrid1-&gt;Cols[1]-&gt;IndexOf(&quot;AS&quot;) &gt;= 0)
    {
      StringGrid1-&gt;Canvas-&gt;Brush-&gt;Color = clGray;
      StringGrid1-&gt;Canvas-&gt;Font-&gt;Color = clWhite;
      StringGrid1-&gt;Canvas-&gt;FillRect(Rect);
    }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1SetEditText(TObject *Sender, int ACol,
      int ARow, const AnsiString Value)
{
  // nach Texteingabe in der fraglichen Spalte dafür sorgen,
  // dass das Grid neugezeichnet wird
  if (ACol == 1)
    StringGrid1-&gt;Invalidate();

  // ein ähnlicher Aufruf ist notwendig, wenn das StringGrid
  // per Programm mit Text befüllt wird
}
//---------------------------------------------------------------------------
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/986289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986289</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 05 Feb 2006 11:05:00 GMT</pubDate></item><item><title><![CDATA[Reply to einzelne Zellen in StringGrid deaktivieren? on Sun, 05 Feb 2006 14:06:14 GMT]]></title><description><![CDATA[<p>Hallo Jansen,</p>
<p>das klappt ja schon ganz wunderbar, danke.</p>
<p>Kannst du mir auch noch verraten, wie man es bewerkstelligt, dass nur die Zelle der jeweiligen Zeile, in der &quot;AS&quot; steht, geschwärzt wird?</p>
<p>Beispiel:<br />
In Zeile 1/Spalte 1 steht AS, dann soll die 3. Zelle genau dieser Zeile geschwärzt werden.</p>
<p>In Zeile 2/Spalte 1 steht kein AS, es soll nichts passieren.</p>
<p>In Zeile 3/Spalte 1 steht wiederum AS, hier soll wieder in derselben Zeile die 3 Zelle geschwärzt werden.</p>
<p>Ich habe das hier fertiggestellt, es werden auch die Zeilen abgefragt, die geschwärzte Zelle bleibt beim Wechsel der Zeile aber nicht stehen, sonder läuft immer mit. Es soll aber in jeder Zeile, in der AS steht, eine graue Zelle sein.</p>
<pre><code class="language-cpp">void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &amp;Rect, TGridDrawState State)
{
	// Zelle [3,2] soll gezeichnet werden
	if (ACol == 3 &amp;&amp; ARow == StringGrid1-&gt;Row)
	{
		// also prüfen, ob irgendwo in Spalte 1 der gesuchte String steht
		//if (StringGrid1-&gt;Cols[1]-&gt;IndexOf(&quot;AS&quot;) &gt;= 0)
		if (StringGrid1-&gt;Cells[1][StringGrid1-&gt;Row] == &quot;AS&quot;)
		{
			StringGrid1-&gt;Canvas-&gt;Brush-&gt;Color = clGray;
			StringGrid1-&gt;Canvas-&gt;Font-&gt;Color = clWhite;
			StringGrid1-&gt;Canvas-&gt;FillRect(Rect);
		}
	}
}
//---------------------------------------------------------------------------
</code></pre>
<p>PS<br />
Gibts einen Unterschied zwischen Invalidate und Refresh?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/986461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986461</guid><dc:creator><![CDATA[Ingo]]></dc:creator><pubDate>Sun, 05 Feb 2006 14:06:14 GMT</pubDate></item><item><title><![CDATA[Reply to einzelne Zellen in StringGrid deaktivieren? on Sun, 05 Feb 2006 15:37:15 GMT]]></title><description><![CDATA[<p>Ingo schrieb:</p>
<blockquote>
<p>Kannst du mir auch noch verraten, wie man es bewerkstelligt, dass nur die Zelle der jeweiligen Zeile, in der &quot;AS&quot; steht, geschwärzt wird?</p>
</blockquote>
<p>Das ist aber eigentlich nur noch logisches Denken ...</p>
<pre><code class="language-cpp">if (ACol == 3 &amp;&amp; StringGrid1-&gt;Cells[1][ARow] == &quot;AS&quot;)
  {
    StringGrid1-&gt;Canvas-&gt;...
  }
</code></pre>
<blockquote>
<p>Gibts einen Unterschied zwischen Invalidate und Refresh?</p>
</blockquote>
<p>Gibt es bestimmt. Schau doch mal in der Hilfe oder in den Sourcen nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/986563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986563</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 05 Feb 2006 15:37:15 GMT</pubDate></item><item><title><![CDATA[Reply to einzelne Zellen in StringGrid deaktivieren? on Sun, 05 Feb 2006 15:56:59 GMT]]></title><description><![CDATA[<p>Danke, Jansen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/986580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986580</guid><dc:creator><![CDATA[Ingo]]></dc:creator><pubDate>Sun, 05 Feb 2006 15:56:59 GMT</pubDate></item></channel></rss>