XP Style als Komponente !



  • Hi !

    ich habe eine .res datei angefertigt, die , wenn man sie zum Projekt hinzufügt, die Anwendung im XP Style erscheinen lässt.

    Wie kann ich das nun als VCL Komponente erstellen ? also es soll wie ein button mit einem Klick auf der Form sein und natürlich funtkionieren 😃

    Gruß Assun



  • weiß denn keine eine Antwort ?



  • Bekomm ich jetzt keine Antworten, weil ich nicht registriert bin oder was ?



  • Du bekommst keine Antworten weil das hier niemand weiß.

    Denke aber das das nicht möglich ist.



  • aber es müsste doch möglich sein, eine komponente zu erstellen, die einfach nur diese .res datei zu dem Projekt hinzufügt, oder?



  • denke nicht weil eine komponente ja eine klasse ist und keine resourcen datei



  • doch, das geht sogar sehr einfach:

    XPStyle.cpp

    //---------------------------------------------------------------------------
    
    #include <basepch.h>
    
    #pragma hdrstop
    
    #include "XPStyle.h"
    #pragma package(smart_init)
    #pragma resource "winxp.res"
    //---------------------------------------------------------------------------
    // Mit ValidCtrCheck wird sichergestellt, daß die erzeugten Komponenten
    // keine rein virtuellen Funktionen besitzen.
    //
    
    static inline void ValidCtrCheck(TXPStyle *)
    {
        new TXPStyle(NULL);
    }
    //---------------------------------------------------------------------------
    __fastcall TXPStyle::TXPStyle(TComponent* Owner)
        : TComponent(Owner)
    {
    }
    //---------------------------------------------------------------------------
    namespace Xpstyle
    {
        void __fastcall PACKAGE Register()
        {
             TComponentClass classes[1] = {__classid(TXPStyle)};
             RegisterComponents("gsm-dev", classes, 0);
        }
    }
    //---------------------------------------------------------------------------
    

    XPStyle.h

    //---------------------------------------------------------------------------
    
    #ifndef XPStyleH
    #define XPStyleH
    //---------------------------------------------------------------------------
    #include <SysUtils.hpp>
    #include <Classes.hpp>
    //---------------------------------------------------------------------------
    class PACKAGE TXPStyle : public TComponent
    {
    private:
    protected:
    public:
        __fastcall TXPStyle(TComponent* Owner);
    __published:
    };
    //---------------------------------------------------------------------------
    #endif
    

    Also einfach eine neue leere Komponente erzeugen, die von TComponent abgeleitet
    ist und dort #pragma resource "winxp.res" eintragen.

    edit:

    ich hab gerade festgestellt, dass es nur einmal pro Projekt klappt. Also wenn
    man versehentlich die Komponente löscht und wieder neu erstellt bekommt man
    die Resource nicht mehr eingebunden. Komische Sache...



  • Hallo,

    Das klingt ja alles sehr interessant. Ich habe jetzt nur die Frage: Woher bekomme ich diese "winxp.res"???

    Vielen Dank,
    Euer Entertainer




Anmelden zum Antworten