Form erstellen und Eigenschaften weitervererben



  • Hi,

    ich schreibe eine Mehrfensteranwendung. Bei den Nebenfenstern wollte ich mir eine eigene Form erstellen und die Nebenfenstern dann davon ableiten. Etwas so:

    //meine Form
    class TMyForm : public TForm
    {
        ...
    };
    

    Ich habe dann über Datei->Neu->Formular ein Formular eingefügt und es so umgeschrieben, dass es von TMyForm abgeleitet wird.

    //das Nebenfenster
    class TWnd1 : TMyForm
    {
        ...
    };
    

    Allerdings bekomme ich jetzt (beim Speichern) vom Builder (BCB6) die Meldung:

    Fehler im Modul FWnd1: Deklaration der Klasse TWnd1 fehlt oder ist fehlerhaft. Trotzdem speichern?

    Also wie kann ich das jetzt richtig anstellen? 😕

    Maffe



  • [cpp]
    //das Nebenfenster
    class TWnd1 : public TMyForm
    {
    ...
    };
    [/cpp]



  • Das habe ich auch gerade festgestellt. 😞 Ich brauche aber alle Eigenschaften aus TMyForm, sonst kann ich auch jedes Nebenfenster wieder von TForm ableiten und kopiere die entsprechenden Sachen. Finde ich aber nicht besonders elegant.
    Jemand ne Idee? 😕



  • BCB-Hilfe schrieb:

    Für Eigenschaften, Methoden und Datenelemente gibt es fünf Stufen der Zugriffssteuerung, auch bezeichnet als Sichtbarkeit. Die Sichtbarkeit bestimmt, welcher Code auf welche Teile der Klasse zugreifen kann. Mit der Definition der Sichtbarkeit definieren Sie die Schnittstelle zu Ihren Komponenten.
    Die nachfolgende Tabelle enthält die Sichtbarkeitsstufen, geordnet nach dem Grad der Restriktion, die sie bewirken:

    Sichtbarkeit Bedeutung Verwendung
    private Zugriff nur für den Code der Klasse, in der er definiert ist. Verbirgt die Details der Implementierung
    protected Zugriff nur für den Code der Klasse, in der er definiert ist, und deren Nachkommen. Definiert die Schnittstelle des Komponentenentwicklers
    public Zugriff für jeden Code. Definiert die Laufzeit-Schnittstelle
    __automated Zugriffsmöglichkeit für jeden Code. Auf dieser Stufe werden Automatisierungs-Typinformationen erzeugt. Nur für OLE-Automatisierung
    __published Zugriff für jeden Code. Außerdem ist der Zugriff vom Objektinspektor aus möglich. Speicherung in einer Formulardatei. Definiert die Entwurfszeit-Schnittstelle



  • Ich glaube, ich habe gerade einen kleinen Denkfehler. Wenn ich schreibe:

    class TWnd1 : public TMyForm
    

    Dann heisst das doch nichts anderes, als dass die Schutzattribute der Eigenschaften von TMyForm ohne Veränderung übernommen werden. Das heisst doch, dass TWnd1 alle Eigenschaften von TMyForm hat plus der Eigenschaften, die ich noch zusätzlich vereinbare.

    Richtig oder falsch?



  • Maffe001 schrieb:

    Ich glaube, ich habe gerade einen kleinen Denkfehler. Wenn ich schreibe:

    class TWnd1 : public TMyForm
    

    Dann heisst das doch nichts anderes, als dass die Schutzattribute der Eigenschaften von TMyForm ohne Veränderung übernommen werden. Das heisst doch, dass TWnd1 alle Eigenschaften von TMyForm hat plus der Eigenschaften, die ich noch zusätzlich vereinbare.

    Richtig oder falsch?

    Richtig.

    bis bald
    akari


Log in to reply