![]() |
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:
3. Datei "xp.rc" erstellt.
<?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> 4. Folgendes in die "xp.rc" eingefügt: Zitat:
6. Habe die "xp.RES" in meinen Projekt ordner gepackt. 7. Bei Delphi habe ich es dann so eingefügt: Zitat:
aber von XP-Style keine spur....woran liegt das? |
Re: XP Style
du musst bei deinem desktop auch den xp style aktivieren! nicht "Windows klasisch/standart" wählem!
das war mein fehler |
Re: XP Style
Hast du denn Windows XP?
|
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: |
Re: XP Style
er hat entweder kein xp oder das design nicht aktiviert am desktop :mrgreen:
|
Re: XP Style
Oder InitCommonControls bei einer Konsolenanwendung oder einem Programm ohne VCL...
|
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:
also ich habe in meinem program:
Delphi-Quellcode:
die ich auch mit "ICC;" aufrufe
function ICC: integer; external 'comctl32.dll' name 'InitCommonControls';
hat das was damit zu tun? ich brauch die funktion ja damit ich überhaupt die statusbar anzeigen kann |
Re: XP Style
Zitat:
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). |
Re: XP Style
TButton?
es ist ein normaler button den ich per winapi erstellt habe:
Delphi-Quellcode:
also ich verstehe es echt nicht, der style MUSS doch gehen... :cry:
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 ); Es ist ein projekt ohne vcl. |
Re: XP Style
rufst Du ICC vorher oder nacher auf?
|
Re: XP Style
nachher, also vor der statusbar
Habs jetzt mal ganz am anfang von WM_Create gesetzt, bringt aber auch nichts :? |
Re: XP Style
In Deiner Assembly fehlt die assemblyIdentity Deines Programms :roll:
|
Re: XP Style
wo bekomme ich die denn her? O_o
|
Re: XP Style
Zitat:
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> ![]() 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... |
Re: XP Style
hallo nico,
aber hier: ![]() funktioniert es doch auch |
Re: XP Style
Zitat:
Vergleich beide und Du findest die Lösung alleine. Deine Version:
XML-Code:
Die Version aus Deinem Link:
<?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>
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> |
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. :? |
Re: XP Style
Zitat:
XML-Code:
in deinem ergänzen, dann sollte es gehen.
<assemblyIdentity
name="Firmenname.Programmname" processorArchitecture="x86" version="1.0.0.0" type="win32"/> Ä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. |
Re: XP Style
Was ist jetzt aber, wenn das Programm auf einem Rechner laufen soll, wo nicht XP installiert ist. Kommt dann ein Fehler???
|
Re: XP Style
nein, meines wissens kommt kein fehler es ist nur im alten win style.
|
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:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz