Announcement

Collapse
No announcement yet.

XP-Style bleibt nicht vorhanden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XP-Style bleibt nicht vorhanden

    Hallo Leute,

    ich habe vor den VisualStyle des XP-Themes für meine Komponenten im Programm zu benutzen, was auch funktioniert, sofern der XP-Theme von Benutzer unter Windows selber verwendet wird, ansonsten wird der "alte" Windows-Theme geladen.

    Gefunden hab ich das in der MSDN:
    http://msdn.microsoft.com/en-us/library/ms997646.aspx

    All applications running on the Windows XP operating system have a non-client area, which includes the window frame and non-client scrollbars. A visual style is applied to the non-client area by default. This means that the appearance of the non-client area is specified by the visual style that is currently installed.
    Das sagt mir ja nur, das sofern kein VisualStyle vom Programm vorgegeben ist, der derzeitige Style von Windows verwendet wird, was wiederum den Schluss zulässt, das es möglich sein muss, ein festdefiniertes Style in der *.exe mit zu kompilieren.
    Wie biege ich den Projekt aber bei, das es immer den XP-Theme dafür verwenden soll?

    Oder muss man für ein solches Vorhaben de Luna.Theme direkt einbinden?

    Greez Pixtar

  • #2
    Ab C++-Builder 7 - C++-Builder 2006 reicht es die Unit XPMan (Komponente TXPManager) einzubinden, ab der 2007er Version kann man das per Projektoption steuern.

    Comment


    • #3
      Problem an der Sache ist, ich habe den C++ Builder 6, in dem die Komponente noch nicht vorhanden ist und es gibt sie auch nicht zum Download. -.-
      Achja die Komponente die du meinst heißt übrigens TXPManifest ^^

      Comment


      • #4
        Stört doch nicht. Dann bastelst du dir dein Manifest selbst

        Comment


        • #5
          Ich merke schon, hab mich wohl unklar ausgedrückt ...

          Also ich hab eine RC-Datei erstellt "WinStyle.rc" mit folgendem Inhalt

          1 24 "WinStyle.manifest"

          In der Datei "WinStyle.manifest" steht der Inhalt des so oft im Internet gefunden XML-Dokuments (siehe dein Link, siehe mein Link ^^)

          Die RC-Datei habe ich meinen Projekt beigefügt und JA die Buttons sehen so aus wie der Luna-Theme von Windows ABER sollte man das Programm auf einem Windows 98 Rechner starten oder aber einem Windows XP Rechner der keinen Luna-Theme verwendet (StyleXP etc.), werden alle Objekte in dem Theme angezeigt der verwendet wird.

          Sprich: Die XML-Datei macht nichts anderes als den aktuelle Windows Theme für das Programm bereit zu stellen.

          Also genau das was ich nicht möchte, ich möchte das die Exe selber weiß wie sie aussieht/auszusehen hat - somit eine Windows Theme unabhängiges Programm ^^

          PS: Was ja nicht alt zu schwer sein dürfte laut Aussage der MSDN
          Wo ist eigentlich Christian, der weiß doch meißt alles beim Builder
          Zuletzt editiert von Pixtar; 19.11.2008, 18:37.

          Comment


          • #6
            Ok. Hab dich mißverstanden.

            Das was du willst ist nur mit Skinningkomponenten (VCLSkin etc.) oder entsprechenden Komponenten wie das ElPack möglich. Von Haus bieten die VCL-Kompos das nicht das man unter Win9x/NT/2000 einen anderen Look als diesen altbackenen Look hat.

            Comment


            • #7
              Mhh .. ok kennst du vielleicht auch OpenSource Projekte, da bei "LMD ElPack" und "VCL Skin" Lizenzen erworben werden müssen. *g*
              Hab aber mal ne Demo Exe von VCLSkin gezogen und ausgeführt - das funktioniert aufjedenfall, seine Exe vom Theme unabhängig zu machen .. es bläht die Größe zwar nen bischel auf, aber naja

              Comment


              • #8
                Originally posted by Pixtar View Post
                Mhh .. ok kennst du vielleicht auch OpenSource Projekte, da bei "LMD ElPack" und "VCL Skin" Lizenzen erworben werden müssen. *g*
                Kannst dich evtl hier beteiligen

                Originally posted by Pixtar View Post
                Hab aber mal ne Demo Exe von VCLSkin gezogen und ausgeführt - das funktioniert aufjedenfall, seine Exe vom Theme unabhängig zu machen .. es bläht die Größe zwar nen bischel auf, aber naja
                irgendwo muss ja der Code für das Theming hinkommen. Wenns man schon nicht von Windows bekommt muß es halt in der eigenen Exe landen.

                Comment


                • #9
                  Der Link ist schon mal was feines, wieder nen neues Schlagwort zum füttern für Google:
                  "NonVCL" ^^

                  ÖÖhhhmm .. ja wenn das Teil nicht in einem Delphi Thread wäre, wo wir uns doch gerade in einem Builder Thread befinden .. *nochmal nachhack* .. gibt es das auch für den C++ Builder for free?

                  PS: Nicht schlagen wenns damit doch gehen sollte, aber das ist doch für Delphi nicht für den Builder...

                  Comment


                  • #10
                    schon mal geschaut welche Quelldateien der C++-Builder im hintergrund für GUI/VCL-Projekte verwendet? Pascal-Dateien :-) Also sollte der C++-Builder (mit anpassungen) damit auch funktionieren.

                    Comment

                    Working...
                    X