TCategoryPanel Horizontal Separator entfernen



  • Hallo Leute

    Ich habe das Menü jetzt hinbekommen funktioniert auch alles aber ich habe immer noch wenn das Menü zugeklappt die Bottom Zeile enthalten wie bekomme ich diese noch weg.

    Was ich meine ist Rot eingerahmt!!

    http://up.picr.de/28524244gg.png

    MFG



  • Mein Virenscanner blockiert leider die angegebene Website.

    Meinst du das:

    http://stackoverflow.com/questions/16004200/remove-tcategorypanel-border

    Wenn ja, musst du eine eigene Komponente auf Basis von TCategoryPanelGroup erstellen und die Methode CreateParams wie folgt überschreiben:

    void __fastcall TMyCategoryPanelGroup::CreateParams(TCreateParams &Params)
    {
    	TCategoryPanelGroup::CreateParams(Params);
    	Params.Style = Params.Style & ~WS_BORDER;
    
    }
    


  • Hallo Kerem

    Ja das meinte ich aber das hatte ich schon probiert und leider funktioniert dies nicht .

    Habe auch dies schon probiert

    http://stackoverflow.com/questions/8279822/how-can-i-remove-the-or-change-the-horizontal-separator-in-a-category-panel-co

    Dies funktioniert leider auch nicht ich kann leider auch nicht sagen warum ?

    MFG



  • Dann wird es wohl Zeit für etwas Code...

    Poste doch mal deine Implementierung der Komponente. Bei mir funktioniert es nämlich einwandfrei mit dem C++ Builder 10 Seattle.

    Welche Version nutzt du?



  • Moin Kerem

    Code in meiner Project.cpp

    void __fastcall TMyCategoryPanelGroup::CreateParams(TCreateParams &Params)
    {
        TCategoryPanelGroup::CreateParams(Params);
        Params.Style = Params.Style & ~WS_BORDER;
    
    }
    

    in der Project.h

    class MyCategoryPanelGroup : public TCategoryPanelGroup
    {
    
    public:
         void __fastcall CreateParams(TCreateParams &Params);
    
    }
    

    und Version nutze ich Berlin

    MFG

    Denis



  • Mahlzeit Denis,

    sorry, hab leider einen Teil meiner Implementierung übersehen. Der bisher betrachtete Code entfernt lediglich die Umrandung der TCategoryPanelGroup.

    Dein zweites Beispiel beschreibt eigentlich das was wir brauchen. Ich habe das so umgesetzt:

    void __fastcall TMyCategoryPanel::DrawCollapsedPanel(Vcl::Graphics::TCanvas* ACanvas)
    {
    	TRect LRect;
    	LRect = ClientRect;
    	LRect.Top = HeaderHeight;
    	LRect.Bottom = GetCollapsedHeight();
    
    	ACanvas->Brush->Color = Color;
    	ACanvas->FillRect(LRect);
    }
    
    int __fastcall TMyCategoryPanel::GetCollapsedHeight(void)
    {
    	return HeaderHeight ;
    }
    

    Dieses Panel muss jetzt in der Spezialisierung der Komponente TCategoryPanelgroup bekannt gemacht (#include "MyCategoryPanel.h" z.B.) und genutzt werden. Dazu noch die Methode GetCategoryPanelClass überschreiben:

    TCategoryPanelClass __fastcall TMyCategoryPanelGroup::GetCategoryPanelClass(void)
    {
    	return __classid(TMyCategoryPanel);
    }
    

    Viel Erfolg!

    Gruß
    Kerem


Anmelden zum Antworten