<?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[TCustomGrid mit DBGrid]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab mal wieder iern kleines Problem:</p>
<p>Ich benötige in einem DBGrid die &quot;LeftCol&quot;-Funtion, um bei einem Neuzeichnen des DBGrids wieder an die gleiche horizontale Position zu springen.</p>
<p>Folgende Fehlermeldung kommt beim Compilieren:<br />
&quot;Zugriff auf 'TCustomGrid::LeftCol' nicht möglich&quot;</p>
<p>Ich habe in der Hilfe nachgeschaut und dort steht, dass auch DBGrids Elemente von CustomGrid sind und demzufolge auch diese Funktionen genutzt werden können.</p>
<p>Mit einem StringGrid funktioniert die Sache wunderbar. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>kann mir jemand helfen, wie ich diese Funktionen beim DBGrid nutzen kann?</p>
<p>Danke<br />
Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/115286/tcustomgrid-mit-dbgrid</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 09:34:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/115286.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Jul 2005 07:23:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 07:23:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab mal wieder iern kleines Problem:</p>
<p>Ich benötige in einem DBGrid die &quot;LeftCol&quot;-Funtion, um bei einem Neuzeichnen des DBGrids wieder an die gleiche horizontale Position zu springen.</p>
<p>Folgende Fehlermeldung kommt beim Compilieren:<br />
&quot;Zugriff auf 'TCustomGrid::LeftCol' nicht möglich&quot;</p>
<p>Ich habe in der Hilfe nachgeschaut und dort steht, dass auch DBGrids Elemente von CustomGrid sind und demzufolge auch diese Funktionen genutzt werden können.</p>
<p>Mit einem StringGrid funktioniert die Sache wunderbar. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>kann mir jemand helfen, wie ich diese Funktionen beim DBGrid nutzen kann?</p>
<p>Danke<br />
Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829864</guid><dc:creator><![CDATA[mgaertner]]></dc:creator><pubDate>Wed, 13 Jul 2005 07:23:17 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 07:37:06 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>wenn du diese Eigenschaft bei einem DBGrid haben willst, must du von DBGrid ableiten und diese Eigenschaft mit</p>
<pre><code class="language-cpp">__published:
    __property LeftCol;
</code></pre>
<p>wieder aktivieren.</p>
<p>Eine Anleitung zum Erstellen eines solchen Controls findest du <a href="http://bcb-tutorial.c-plusplus.net/komponentenentwicklung/index.html" rel="nofollow">hier</a></p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829880</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 13 Jul 2005 07:37:06 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 08:05:44 GMT]]></title><description><![CDATA[<p>Könntest Du das Problem ein bißchen näher erläutern. Mir ist nicht klar was Du erreichen willst. Möglicherweise gibt es deutlich einfachere und elegantere Lösungen für das Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829899</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 13 Jul 2005 08:05:44 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 08:19:57 GMT]]></title><description><![CDATA[<p>Also,</p>
<p>Ich habe ein DBGrid, was auch wunderbar funktioniert.</p>
<p>das Problem liegt darin:</p>
<p>Ich habe im Event &quot;DrawColumnCell&quot; habe ich einige Funktionen stehen.<br />
Ich habe mir eine Sortierung erstellt, dass wenn ich auf die Titelleiste klicke, sich die Tabelle nach diesem Feld neu sortiert. Wenn dies der Fall ist, dann wird der &quot;DrawColumnCell&quot;-Event ausgelöst und das gesamte DBGrid wird neu geschrieben und meine Scrollbar steht wieder ganz links, auch wenn das Grid vorher ein ganzes Stück nach rechts gescrollt war.</p>
<p>Da habe ich von der LeftCol-Funktion gehört. Im &quot;Normalen&quot; StringGrid funktioniert diese auch fantastisch. Nur nicht im DBGrid.</p>
<p>Meine Frage nun:<br />
Ich möchte NACH der Aktualisierung wieder an der gleichen horizontalen Scrollposition sein, wie VORHER.</p>
<p>ich denke die Antwort ist bestimmt ganz simpel, aber ihr wisst ja wie das ist mit den einfachen Sachen. Da kommt man meisst NIE drauf ...</p>
<p>Gruß Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829906</guid><dc:creator><![CDATA[mgaertner]]></dc:creator><pubDate>Wed, 13 Jul 2005 08:19:57 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 08:53:44 GMT]]></title><description><![CDATA[<p>ok, in diesem Fall -&gt; akaris Antwort... Sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829940</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 13 Jul 2005 08:53:44 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 13:49:24 GMT]]></title><description><![CDATA[<p>Vielleicht kannst Du Dir auch mit einer &quot;Cracker&quot;-Klasse helfen.<br />
Du schreibst Dir in Deiner Header-Datei eine Ableitung von TDBGrid, die lediglich im public-Bereich die Eigenschaft<br />
(ohne Typbezeichner) stehen hat.<br />
Immer wenn Du auf die Eigenschaft zugreifen willst, machst Du einen Cast auf Deine Cracker-Klasse und kannst somit<br />
die Eigenschaft nutzen.</p>
<pre><code class="language-cpp">// Header
class TCrackerDBGrid: public TDBGrid
{
public:
   __property LeftCol;
};
// Irgendwo in Deinem Quelltext
((TCrackerDBGrid*) DBGrid)-&gt;LeftCol
</code></pre>
<p>Gruß,</p>
<p>Alexander</p>
<p>Edit: Cast auf Zeiger abgeändert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/829954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/829954</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 13 Jul 2005 13:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 11:01:54 GMT]]></title><description><![CDATA[<p>Ersteinmal Danke für die vielen Antworten...</p>
<p>Ich habe die Klasse</p>
<pre><code class="language-cpp">class TCrackerDBGrid: public TDBGrid 
{
public:
   __property LeftCol;
};
</code></pre>
<p>in meinem header deklariert =&gt; KEINE FEHLERMELDUNG beim Compilieren.<br />
Sobald ich aber im Quelltext mit</p>
<pre><code class="language-cpp">Panel1-&gt;Caption = IntToStr(((TCrackerDBGrid)(GridMainView))-&gt;LeftCol);
</code></pre>
<p>(GridMainView ist der Name meines DBGrids) auf die Eigenschaft zugreifen möchte, kommen die folgender Fehler:</p>
<p>E2285 Keine Übereinstimmung für 'TCrackerDBGrid::TCrackerDBGrid(TDBGrid *)' gefunden<br />
E2031 Typumwandlung von 'TDBGrid *' nach 'TCrackerDBGrid' nicht zulässig</p>
<p>bin für jeden Tip dankbar. Hab sowas mit Klassen-Ableiten noch nie gemacht...</p>
<p>DANKE Marco</p>
]]></description><link>https://www.c-plusplus.net/forum/post/830088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/830088</guid><dc:creator><![CDATA[mgaertner]]></dc:creator><pubDate>Wed, 13 Jul 2005 11:01:54 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 11:05:21 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>du must auf einen Pointer casten</p>
<pre><code class="language-cpp">Panel1-&gt;Caption = IntToStr(((TCrackerDBGrid*)(GridMainView))-&gt;LeftCol);
</code></pre>
<p>ich kann aber von diesem Weg nur abraten... dürfte meines Wissens undefiniert sein.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/830091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/830091</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 13 Jul 2005 11:05:21 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 12:44:51 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>du must auf einen Pointer casten</p>
</blockquote>
<p>Danke, war ein Fehler in meinem Code-Beispiel.</p>
<p>akari schrieb:</p>
<blockquote>
<p>ich kann aber von diesem Weg nur abraten... dürfte meines Wissens undefiniert sein.</p>
</blockquote>
<p>Vielleicht ist Dein Wissen unvollständig <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 />
Diesen Trick hab ich mal von irgendeiner Webseite (finde sie nicht mehr). Im Prinzip passiert ja auch<br />
(fast) genau das gleiche, wie bei Deiner Lösung. Es wird lediglich die Sichtbarkeit der Eigenschaft verändert.<br />
Nur der Typecast ist etwas undurchsichtig. Vielleicht wird aber die Sichtbarkeit auch nur zur Kompilierzeit<br />
überprüft (wie bei den Generics in Java), dann dürfte es tatsächlich kein Problem sein.<br />
Ich habe sowas in eins unserer Programme eingebaut und es funktioniert einwandfrei.</p>
<p>Als Zwischenlösung könnte man natürlich auch einfach die Komponente zur Laufzeit anlegen:</p>
<pre><code class="language-cpp">TCrackerDBGrid* GridMainView = new TCrackerDBGrid(this);
</code></pre>
<p><a href="http://home.att.net/~robertdunn/CodeSamples/CheapTricks.html#Bmk001" rel="nofollow">Hier</a> ist noch ein anderer Weg, um private/protected Eigenschaften (und in diesem Fall auch Member-Variablen und Funktionen)<br />
sichtbar zu machen (Holzhammermethode).</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/830197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/830197</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Wed, 13 Jul 2005 12:44:51 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 12:51:21 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Vielen Tausend DANK an alle <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Es hat mir sehr geholfen. ich hab mich für Alexander seine Lösung</p>
<pre><code class="language-cpp">// Header
class TCrackerDBGrid: public TDBGrid
{
public:
   __property LeftCol;
};
// Irgendwo in Deinem Quelltext
((TCrackerDBGrid*) DBGrid)-&gt;LeftCol
</code></pre>
<p>entschieden. Diese Lösung funktioniert genauso, wie ich es benötige, auch wenn es vielleicht nicht die sauberste ist <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>Also, Danke und bis zum nächsten Mal.</p>
<p>CU Marco <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/830208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/830208</guid><dc:creator><![CDATA[mgaertner]]></dc:creator><pubDate>Wed, 13 Jul 2005 12:51:21 GMT</pubDate></item><item><title><![CDATA[Reply to TCustomGrid mit DBGrid on Wed, 13 Jul 2005 12:53:31 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich hab nicht behauptet, das es nicht funktioniert. Es ist eben nur bedenklich, eine Instanz auf enen Typ zu casten, mit dem die Instanz nicht erschaffen wurde.<br />
Übrigens kann man statt dem C-Style Cast auch besser noch einen reinterpret_cast nehmen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/830213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/830213</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 13 Jul 2005 12:53:31 GMT</pubDate></item></channel></rss>