<?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 selber erstellter Komponente]]></title><description><![CDATA[<p>Hi Fans,</p>
<p>ich hab mir hier so eine fetzige Linien-Graf-Komponente geschrieben.</p>
<p>Nun habe ich 2 Probleme:</p>
<p>1. Wenn ich die Kompo auf eine Form ziehe und im OI meine neu hinzugekommenen Eigenschaften verstelle (Farben, Xmin-Werte usw.), werden diese Einstellungen nicht übernommen und ich bin gezwungen diese nochmal im Quellcode der Form extra zu setzten.</p>
<p>Beispiel:</p>
<p>Eigenschaft &quot;RAP_BackgroundColor&quot; wird im OI auf clWhite gesetzt. Juckt aber keinen, so dass ich im Konstuktor oder sonstwo die Eingenschaft nochmal &quot;per Hand&quot; setzen muß.</p>
<p>2. Die Default-Werte der Properties (also die für den OI) werden einfach ignoriert und ich muß die Kompo in ihrem Konstruktor nochmal selbst auf die Defaultwerte setzen.</p>
<p>Was mache ich wahrsch. falsch?</p>
<p>MfG F98.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159281/problem-mit-selber-erstellter-komponente</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 23:41:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159281.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Sep 2006 14:21:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit selber erstellter Komponente on Wed, 13 Sep 2006 14:23:26 GMT]]></title><description><![CDATA[<p>Hi Fans,</p>
<p>ich hab mir hier so eine fetzige Linien-Graf-Komponente geschrieben.</p>
<p>Nun habe ich 2 Probleme:</p>
<p>1. Wenn ich die Kompo auf eine Form ziehe und im OI meine neu hinzugekommenen Eigenschaften verstelle (Farben, Xmin-Werte usw.), werden diese Einstellungen nicht übernommen und ich bin gezwungen diese nochmal im Quellcode der Form extra zu setzten.</p>
<p>Beispiel:</p>
<p>Eigenschaft &quot;RAP_BackgroundColor&quot; wird im OI auf clWhite gesetzt. Juckt aber keinen, so dass ich im Konstuktor oder sonstwo die Eingenschaft nochmal &quot;per Hand&quot; setzen muß.</p>
<p>2. Die Default-Werte der Properties (also die für den OI) werden einfach ignoriert und ich muß die Kompo in ihrem Konstruktor nochmal selbst auf die Defaultwerte setzen.</p>
<p>Was mache ich wahrsch. falsch?</p>
<p>MfG F98.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136704</guid><dc:creator><![CDATA[F98]]></dc:creator><pubDate>Wed, 13 Sep 2006 14:23:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit selber erstellter Komponente on Wed, 13 Sep 2006 19:49:42 GMT]]></title><description><![CDATA[<p>ZU 2. Frage<br />
ES bleibt dir nichts anderes übrig als den Default-wert für Property nochmal im Konstruktor der Kompo zu schreiben.</p>
<p>ZU 1. Frage<br />
Du solltes das OnChange Event der TBush etc. überschreiben<br />
siehe dazu den Konstruktor</p>
<p>ein Beispiel:<br />
Header::</p>
<pre><code class="language-cpp">class PACKAGE arnold_analog : public TGraphicControl
{
private:
 	TNotifyEvent FOnChange;               //eigenes Ereignis hier deklariert

protected:
public:
        __fastcall arnold_analog(TComponent* Owner);

        void __fastcall Changed(void);

        int FStartwinkel;       
        void __fastcall SetStartwinkel(int AStartwinkel);

__published:
	virtual void __fastcall Paint(void);  //virtual klasse des Vorgängers überschreiben

	__property TNotifyEvent _OnChange = {read=FOnChange, write=FOnChange}; //typ. TNotifyEvent (eigenes Ereigniss)
	void __fastcall StyleChanged(TObject* Sender);

        TBrush* HBrush;  void __fastcall SetHBrush (TBrush* Value);            //Hintergrund
      	__property TBrush* _Hintergrund_P = {read=HBrush,    write=SetHBrush,   nodefault};

        __property int  Startwinkel   ={read=FStartwinkel, write=SetStartwinkel, default=330};
};
</code></pre>
<pre><code>Konstruktor
__fastcall arnold_analog::arnold_analog(TComponent* Owner)
        : TGraphicControl(Owner)
{
  HBrush  = new TBrush(); 

  HBrush-&gt;OnChange  = StyleChanged;  [b]//  HIER DAS ONCHANGE VON TBrush (HBrush) überschreiben mit [/b]
                                     [b]//  mit eigener Funktion damit Propertie übernommen Wird[/b]
  FStartwinkel    = 330;
}
//---------------------------------------------------------------------------

//###########################################################################
//-Eregnissbehandlung, wird ausglöst, wenn __poroperty verändert wird -------
void __fastcall arnold_analog::Changed()
{
  if (FOnChange != NULL)
    FOnChange(this);
 }
//---------------------------------------------------------------------------
void __fastcall arnold_analog::StyleChanged(TObject* /*Sender*/)
{
  Invalidate();
}
//---------------------------------------------------------------------------
//###########################################################################

void __fastcall arnold_analog::SetHBrush(TBrush* Value)
{
  HBrush-&gt;Assign(Value);
  Changed();
}
//---------------------------------------------------------------------------

void __fastcall arnold_analog::SetStartwinkel(int AStartwinkel)
{
  FStartwinkel=AStartwinkel;

  if(!ComponentState.Contains(csDesigning))
   {        //soll einmal wärend der Laufzeit einschalten dann nicht mehr
    zeigerrein(0);
   }
  else
   {        //zur entwurfszeit immer
    Paint();
   }
}
//---------------------------------------------------------------------------

void __fastcall arnold_analog::Paint()
{
   if(!ComponentState.Contains(csDesigning))
   {//soll einmal wärend der Laufzeit einschalten dann nicht mehr
    zeigerrein(0);
   }
  else
   {//zur entwurfszeit immer
    zeigerrein(0);
   }
}
//---------------------------------------------------------------------------
</code></pre>
<p>Hoffe das ich nichts vergessen habe....</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1136898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1136898</guid><dc:creator><![CDATA[dlonra]]></dc:creator><pubDate>Wed, 13 Sep 2006 19:49:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit selber erstellter Komponente on Thu, 14 Sep 2006 13:44:22 GMT]]></title><description><![CDATA[<p>Hm, hab jetzt meine Compo so umgeschrieben, dass sie wenn ich sie auf ein Formular ziehen den Gesamten Builder zum Absturz bringt. Der Witz ist, ich weis nicht worans liegt. Der Debugger kommt weder durch den Konstruktor, Loaded() noch sonstwo rein. der Absturz erfolg also noch irgendwo davor. Woran könnte das liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137354</guid><dc:creator><![CDATA[F98]]></dc:creator><pubDate>Thu, 14 Sep 2006 13:44:22 GMT</pubDate></item></channel></rss>