Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi XP Style (https://www.delphipraxis.net/24770-xp-style.html)

Pseudemys Nelsoni 25. Jun 2004 21:42


XP Style
 
hallo,

langsam verzweifle ich echt an dieser Sache...

Ich habe vor meinem Program den XP-Style zu verpassen, ich habe das folgendermassen gemacht:

1. Datei "xp.manifest" erstellt.
2. Folgendes in die "xp.manifest" eingefügt:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description>xp</description>
<dependency>
        <dependentAssembly>
                <assemblyIdentity
                        type="win32"
                        name="Microsoft.Windows.Common-Controls"
                        version="6.0.0.0"
                        processorArchitecture="X86"
                        publicKeyToken="6595b64144ccf1df"
                        language="*"
                />
        </dependentAssembly>
</dependency>
</assembly>
3. Datei "xp.rc" erstellt.
4. Folgendes in die "xp.rc" eingefügt:

Zitat:

1 24 "xp.manifest"
5. Ich habe die "xp.RES"-Datei dann mit "brcc32 pfad\xp.rc" erstellt
6. Habe die "xp.RES" in meinen Projekt ordner gepackt.
7. Bei Delphi habe ich es dann so eingefügt:

Zitat:

{$R xp.RES}

aber von XP-Style keine spur....woran liegt das?

Nicodius 25. Jun 2004 21:46

Re: XP Style
 
du musst bei deinem desktop auch den xp style aktivieren! nicht "Windows klasisch/standart" wählem!

das war mein fehler

Luckie 25. Jun 2004 21:50

Re: XP Style
 
Hast du denn Windows XP?

MrKnogge 25. Jun 2004 21:50

Re: XP Style
 
Ich bin an diesem Problem auch malgescheitert, wobei ich die Ressource per Ressourceupdate in fremde Programme einfügen wollte.

Du weist aber schon, das es bei D7 eine schöne Kompo gibt :zwinker:

Nicodius 25. Jun 2004 21:55

Re: XP Style
 
er hat entweder kein xp oder das design nicht aktiviert am desktop :mrgreen:

NicoDE 25. Jun 2004 22:03

Re: XP Style
 
Oder InitCommonControls bei einer Konsolenanwendung oder einem Programm ohne VCL...

Pseudemys Nelsoni 25. Jun 2004 22:06

Re: XP Style
 
also so blöd das ich den xp style nicht anhab noch xp nicht habe bin ich ja nun auch nicht :evil:

natürlich ist der style an...aber nur das fenster selbst (titelleiste) hat den xp style, buttons etc nicht.

Zitat:

Oder InitCommonControls bei einer Konsolenanwendung oder einem Programm ohne VCL...
wie meinst du das?

also ich habe in meinem program:

Delphi-Quellcode:
function ICC: integer; external 'comctl32.dll' name 'InitCommonControls';
die ich auch mit "ICC;" aufrufe


hat das was damit zu tun? ich brauch die funktion ja damit ich überhaupt die statusbar anzeigen kann

NicoDE 25. Jun 2004 22:17

Re: XP Style
 
Zitat:

Zitat von Pseudemys Nelsoni
wie meinst du das?

Nicht so wichtig, die VCL ruft es bei der Initialisierung ohnehin auf.
Dein Problem ist, dass die Windows-Shell nicht weiss, dass TButton ein BUTTON ist (also weiss es auch nicht, wie es das Control skinnen soll).

Pseudemys Nelsoni 25. Jun 2004 22:20

Re: XP Style
 
TButton?

es ist ein normaler button den ich per winapi erstellt habe:

Delphi-Quellcode:
        mButton := CreateWindowEx(
          WS_EX_CLIENTEDGE,
          'BUTTON',
          M_BTN_TEXT,
          WS_VISIBLE or
          BS_CENTER   or
          WS_CHILD or
          ES_NOHIDESEL,
          50,
          50,
          50,
          50,
          hWnd,
          IDC_M_BTN,
          hInstance,
          nil
        );
also ich verstehe es echt nicht, der style MUSS doch gehen... :cry:

Es ist ein projekt ohne vcl.

NicoDE 25. Jun 2004 22:24

Re: XP Style
 
rufst Du ICC vorher oder nacher auf?

Pseudemys Nelsoni 25. Jun 2004 22:27

Re: XP Style
 
nachher, also vor der statusbar

Habs jetzt mal ganz am anfang von WM_Create gesetzt, bringt aber auch nichts :?

NicoDE 25. Jun 2004 22:39

Re: XP Style
 
In Deiner Assembly fehlt die assemblyIdentity Deines Programms :roll:

Pseudemys Nelsoni 25. Jun 2004 22:42

Re: XP Style
 
wo bekomme ich die denn her? O_o

NicoDE 25. Jun 2004 22:54

Re: XP Style
 
Zitat:

Zitat von Pseudemys Nelsoni
wo bekomme ich die denn her? O_o

Indem Du Dir einfach mal die Standard-Assembly ansiehst...
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="X86"
    name="CompanyName.ProductName.YourApplication"
    type="win32"
/>
<description>Your application description here.</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>
Using Windows XP Visual Styles.
Kurz: die Shell weiss in Deiner oben geschriebenen Assembly gar nicht was von den Common Controls 6.0 abhängig ist - weil Du keine Assembly definiert hast, sondern nur die Abhängigkeit...

Pseudemys Nelsoni 25. Jun 2004 23:07

Re: XP Style
 
hallo nico,

aber hier: http://www.delphipraxis.net/internal...light=manifest
funktioniert es doch auch

NicoDE 25. Jun 2004 23:14

Re: XP Style
 
Zitat:

Zitat von Pseudemys Nelsoni
aber hier [...] funktioniert es doch auch

Na sicher.

Vergleich beide und Du findest die Lösung alleine.

Deine Version:
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description>xp</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>
Die Version aus Deinem Link:
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    name="Firmenname.Programmname"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
<description>Programmbeschreibung</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

Pseudemys Nelsoni 25. Jun 2004 23:27

Re: XP Style
 
hallo nico,

habe es mit letzterem auch schon probiert, also das dokument durch meins ersetzt und die .res neu erstellt und eingebunden.
Aber mein Programm startet dennoch mit dem klassischen windows style.
:?

MathiasSimmack 26. Jun 2004 06:57

Re: XP Style
 
Zitat:

Zitat von Pseudemys Nelsoni
[...], also das dokument durch meins ersetzt [...]

Wird nicht eher anders herum ein Schuh draus? Du musst das zweite Dokument verwenden, bzw. den Knoten
XML-Code:
<assemblyIdentity
    name="Firmenname.Programmname"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
in deinem ergänzen, dann sollte es gehen.

Äh ... *räusper* ... ich möchte dich an der Stelle, wieder einmal, an die Win32-API-Tutorials verweisen. Speziell an die Beispielprogramme: Dort liegt ein Manifest bei und wird von einigen Beispielen verwendet.

TypusMensch 29. Jun 2004 08:48

Re: XP Style
 
Was ist jetzt aber, wenn das Programm auf einem Rechner laufen soll, wo nicht XP installiert ist. Kommt dann ein Fehler???

Toenn 29. Jun 2004 09:28

Re: XP Style
 
nein, meines wissens kommt kein fehler es ist nur im alten win style.

alcaeus 29. Jun 2004 09:50

Re: XP Style
 
Es geschieht das gleiche, als wenn das Prog auf WinXP läuft, allerdings mit dem klassischen Stil: Es sieht einfach wie ein normales, altes Win-Programm aus.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz