Hallo
wer kann mir bei folgendem Problem helfen ?
Da ich mehrere Formulare habe, die vieles gemeinsam haben, leite ich diese nicht gleich von TForm ab, sondern hab eine Basisklasse angelegt, von der die Formulare dann abgeleitet werden. Also in etwa so:
<pre>
class TBasisForm : TForm
{
// eigene Eigenschaften und Methoden....
};
</pre>
<pre>
class TForm1 : TBasisForm
{
// ...
};
</pre>
<pre>
class TForm2 : TBasisForm
{
// ...
};
// usw.
</pre>
Das Funktioniert auch alles ganz gut, ein Problem gibt es aber bei den IDE-Komponenten.
Wenn ich beispielsweise bereits in TBasisForm einen Zeiger auf ein TButton haben will, hab ich dort angelegt, also:
<pre>
class TBasisForm : TForm
{
TButton* myButton;
};
</pre>
Nun wird der Button in der abgeleiteten Klasse überschrieben:
<pre>
class TForm1 : TBasisForm
{
__published:
TButton* myButton;
// ...
};
</pre>
so weit so gut, in der Basisklasse sind Operationen implementiert, die auf die Eigenschaften des Buttons zugreifen, der Compiler bringt auch keine Fehlermeldung. Leider haben die Operationen aber keine Auswirkungen auf diesen Button, egal ob ich den Zeiger in der Basisklasse unter protected, public, oder __published platziere. Kann mir jemand sagen wie ich so etwas realisieren kann ?
Ich habe zwar eine etwas andere (mit ein bisschen mehr Aufwand verbundene) Lösung für mein Problem gefunden, ich hätte aber gerne diese hier, das müsste doch normalerweise funktionieren.
Grüsse
Sebastian
wer kann mir bei folgendem Problem helfen ?
Da ich mehrere Formulare habe, die vieles gemeinsam haben, leite ich diese nicht gleich von TForm ab, sondern hab eine Basisklasse angelegt, von der die Formulare dann abgeleitet werden. Also in etwa so:
<pre>
class TBasisForm : TForm
{
// eigene Eigenschaften und Methoden....
};
</pre>
<pre>
class TForm1 : TBasisForm
{
// ...
};
</pre>
<pre>
class TForm2 : TBasisForm
{
// ...
};
// usw.
</pre>
Das Funktioniert auch alles ganz gut, ein Problem gibt es aber bei den IDE-Komponenten.
Wenn ich beispielsweise bereits in TBasisForm einen Zeiger auf ein TButton haben will, hab ich dort angelegt, also:
<pre>
class TBasisForm : TForm
{
TButton* myButton;
};
</pre>
Nun wird der Button in der abgeleiteten Klasse überschrieben:
<pre>
class TForm1 : TBasisForm
{
__published:
TButton* myButton;
// ...
};
</pre>
so weit so gut, in der Basisklasse sind Operationen implementiert, die auf die Eigenschaften des Buttons zugreifen, der Compiler bringt auch keine Fehlermeldung. Leider haben die Operationen aber keine Auswirkungen auf diesen Button, egal ob ich den Zeiger in der Basisklasse unter protected, public, oder __published platziere. Kann mir jemand sagen wie ich so etwas realisieren kann ?
Ich habe zwar eine etwas andere (mit ein bisschen mehr Aufwand verbundene) Lösung für mein Problem gefunden, ich hätte aber gerne diese hier, das müsste doch normalerweise funktionieren.
Grüsse
Sebastian
Comment