Exception mit eigener Komponente wenn Font Dialog aufgerufen wird



  • Hi,

    ich fange gerade an eigene Komponenten zu erstellen. Was ich nicht gelöst bekomme, ist das der Font-Dialog vom Builder nach der Auswahl(Design-Time) zu einer Exception führt.

    Der Inspector macht keine Probleme, lediglich der Dialog der über die Punkte aufgerufen wird.

    grüße



  • Aha, und was für eine Exception? Wie sieht der Aufrufcode aus? Etwas mehr Informationen musst du schon geben.



  • Da gibts eig keinen Code, nur über Property.

    private:
             void __fastcall SetFont(TFont *ft);
    __published:
    	__property TFont *Font = {read=FFont,write=SetFont};
    
    void __fastcall TmsButtonV1::SetFont(TFont *ft)
    {
    	FFont=ft;
    }
    

    Testweise hab ich mal ne Methode geschrieben, die den Font mit Code setzt. Siehe oben.

    Ich war der Meinung da muss iwas spezielles gemacht werden, damit der Editor für Fonts funzt.

    Das blöde ist, der Code hatte unverändert funktioniert, wenn ich die Komponente dynamisch zur Laufzeit benutzt habe.

    Edit: Die Exception ist ne Access-Violation Adress 0x00

    grüße



  • void __fastcall TmsButtonV1::SetFont(TFont *ft)
    {
        FFont=ft;
    }
    

    Damit überschreibst du deinen Font- Objektzeiger mit dem FontObjekt, auf das ft zeigt.

    Für die Zuweisung musst du Assign benutzen:

    void __fastcall TmsButtonV1::SetFont(TFont *ft)
    {
       FFont->Assign(ft);
    }
    

Log in to reply