Jak mám v Delphi 7 nastavit, aby obyčejné buttony vypadaly ve Win XP "XP style"? A ne jako obyčejné hranaté tlačítka? Jde to nějak nebo je na to potřeba zvláštní komponenta?
Jak mám v Delphi 7 nastavit, aby obyčejné buttony vypadaly ve Win XP "XP style"? A ne jako obyčejné hranaté tlačítka? Jde to nějak nebo je na to potřeba zvláštní komponenta?
V Delphi7 je na to komponenta, už nevim jaxe přesně menuje, ale je někde na konci Standard/Advanced nebo Windows.
EC5410 + Chill 400w, AMD Athlon XP 2500+@3200+, AC Copper Silent 2 (rev2), Out: AC Fan Pro TC, DFI NFII Ultra-AL nForce2 Ultra 400, 2x256MB+512MB DDR 333 CL2.5 Dual Channel, inno3D GeForce4 Ti4200-8x 128MB + AC Fan Pro TC, Seagate ST3160023A 160GB, Seagate ST360021A 60GB, Teac CD-W552E, LG SuperMulti GSA-4160B, SB Live! 5.1 Player + Audigy MOD, Windows XP Pro SP2, Karneval TURBO 2000/300
Ta komponenta se jmenuje XPmanifest. Stačí jí vložit do formuláře a je to. Funguje to ale jenom pod XP.
Obecně stačí vytvoři soubor program.exe.manifest a ten umístit do stejného adresáře jako program.exe... Tohle pak funguje jak pro Delphi, tak pro prorgramy v C/C++, C# a podobně.. Obsah stačí obšlehnout z nějakého jiného manifestu (nějaké jsou myslím v adr. Windows/System32)...
ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
work: HP Docking Station | HP L2445W
audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555
Konecne uz viem na co je subor *.manifest
DIYS gripmeen >> CPU Wolfdale E8200 MOBO Gigabyte GA-P35-DS3R rev 2.1 RAM A-DATA DDRII 800+ EE VGA Gigabyte 3850 512MB HDD SAMSUNG 500GB HD501LJ
Fujistu Siemens Scenic >> CPU Pentium III 1000MHz MOBO unknown RAM 256 + 128MB VGA int. i810 HDD 20GB neznameho typu
nevo staci pridat do uses Xpman, nebo tak nejak ...
Zkoušel jsem to v tom C#, ten manifest soubor jsem pojmenoval stejně jako project ale nějak to nefungujePůvodně odeslal Anduril
![]()
Musí se to jmenovat stejně jako exe soubor...tzn napriklad mujprogram.exe.manifest a obsah manifestu vypadá asi takto:
V C# (resp. Windows Forms) je důležité nastavit vlastnost FlatStyle ovl. prvků na "System" ...Kód:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="MujProgram" processorArchitecture="x86" version="1.0.0.0" type="win32"/> <description>program</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
work: HP Docking Station | HP L2445W
audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555
Paráda, tak takhle to funguje. A jde nějak nastavit aby ve Visual Studiu byla jako výchozí hodnota FlatStyle "System"? A nejde ten manifest soubor nějak "zakompilovat" do toho .exe? Znám totiž spoustu aplikací kde tento manifest není a přesto jsou ve stylu XP
EDIT: v helpu jsem se dočetl že to jde přidat jako resource do aplikace. Ale nepíšou tam jak![]()
Stačí přidat do resource souboru něco ve stylu
(C style resource; u C# jsem resource zatím nijak nezkoumal)
1 24 "Mujprogram.exe.Manifest"
Nebo docela dobře se to dělá v Resource Hackeru...otevřeš si exáč a dáš add new resource z menu Action. Vybereš manifest a jako resource type dáš 24 a jako name dáš 1, language necháš prázdn. Add resource a uložit![]()
ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
work: HP Docking Station | HP L2445W
audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555
Tak ta vychytávka s Resource Hackerem mi nějak nefungujea problém s resource v C# je v tom, že nevím jak ho mám do toho projektu přidat. V Céčku je to jasné, ale tady jsem nic takového nenašel
Kua, spletl jsem se...typ má být 24 samozřejmě...jinak jsem to testoval a funguje mi to...Původně odeslal Dani Filth
A tady jsem ještě spíchnul krátký kód na zapnutí System FlatStyle pro všechny kontroly, co to podporují...moc jsem to netestoval, ale mělo by to fungovat....prostě to hodíš např. do nějakého Initu formuláře a jedem
Kód:foreach(Control c in this.Controls) { Type t = c.GetType(); System.Reflection.PropertyInfo pi = t.GetProperty("FlatStyle"); if(pi!=null) { pi.SetValue(c, FlatStyle.System, null); c.Refresh(); } }
ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
work: HP Docking Station | HP L2445W
audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555
No parádafunguje to!
i ten Resource Hacker i ten kód, díky moc! A nevěděl bys ještě jak přidat ten resource soubor do C# projektu? Je to přece jen pohodlnější
![]()
Hmmm, to fakt netuším. Já používám SharpDevelop a ten resource editor co tam je, tak ten toho moc neumí. Já dávám ten manifest spolu s exe souborem, neřeším toPůvodně odeslal Dani Filth
![]()
ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
work: HP Docking Station | HP L2445W
audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555
Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)