Style XP bez używania zasobów

Drajwer

Przeglądając swoje programy zobaczyłem plik manifest. Słyszałem o nich, ale nie wiedziałem jak taki manifest. Chwilę sie zastanowiłem i zmieniłem nazwę. Patrzę, a tu wszystkie style z xp na moją aplikacje działają.

Nazwa pliku jest taka:
nazwa_twojego_exeka.exe.manifest a treść:

<?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="Program"
    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>
</p>

jest to XML pod nazwą MANIFEST;)

pola description i name można zmienić wedle uznania

A terazz Tadadadammm Robimy Generator!!!
Walnij na foremke:
2xTButton
1xTOpendialog
1xTMemo
Właściwość memo1 visible daj na false;
Oprócz tego daj zmienną globalną o nazwie FileName : string;
1 button nazwij Otwórz a drugi Generuj (nie name a Caption)
teraz kliknij na button Otwórz dwa razy i wpisz

If Opendialog1.execute then filename:=Opendialog1.FileName;
memo1.Lines.add('<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>');
memo1.Lines.add('<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">');
memo1.Lines.add('<assemblyIdentity');
memo1.Lines.add(' version="6.0.0.0"');
memo1.Lines.add(' processorArchitecture="X86"');
memo1.Lines.add(' name="'+extractfilename(filename)+'"');
memo1.Lines.add(' type="win32"');
memo1.Lines.add('/>');
memo1.Lines.add('<description>'+extractfilename(filename)+'</description>');
memo1.Lines.add('<dependency>');
memo1.Lines.add('    <dependentAssembly>');
memo1.Lines.add('        <assemblyIdentity');
memo1.Lines.add(' type="win32"');
memo1.Lines.add(' name="Microsoft.Windows.Common-Controls"');
memo1.Lines.add(' version="6.0.0.0"');
memo1.Lines.add(' processorArchitecture="X86"');
memo1.Lines.add(' publicKeyToken="6595b64144ccf1df"');
memo1.Lines.add(' language="*"');
memo1.Lines.add('        />');
memo1.Lines.add('    </dependentAssembly>');
memo1.Lines.add('</dependency>');
memo1.Lines.add('</assembly>');</p>

teraz kliknij dwa razy na przycisk Generuj i wklej

memo1.lines.savetofile(filename+'.manifest');

tera skompiluj otwórz swuj exek i generuj;)
//Edited by Merien ( Jak to czytalem to sie połapać nie mogłem co jest co to walnąłem kolorowanie składni)

11 komentarzy

Błędy ortograficze... A, i takich rzeczy się nie robi w Memo, tylko w TStringList...

"Słyszałem o nich, ale nie wiedziałem jak taki manifest."
Zdanie absolutnie bez żadnego sensu... Urwało Ci pół zdania?...

"zmienną globalną"
A po co?... Nie lepiej dać "memo1.lines.savetofile(Opendialog1.FileName+'.manifest');"?

"1 button nazwij Otwórz a drugi Generuj (nie name a Caption)"
No przecież jedno przeczy drugiemu...Trzeba było lepiej napisać "1 buttonowi daj etykietę Otwórz..." lub "1 buttonowi daj właściwość Caption Otwórz..."...

Pzdr

Nie martw się Drajwer. Zjechali Cię bo jak się nie można przyczepić do meritum to trzeba chociaż do ortografii. Niektorym wystarczy sama swiadomośc ze kogoś zgnoili. ten typ już tak ma.
Nie zniechęcaj sie.
I pytanie do warlock: Czemu takich rzeczy nie robi się w memo? Czyż nie po to wymyślono ideę komponentow by nie pisać setek linijek kodu za każdym razem od nowa ?

takich rzeczy nie robi się w TMemo!

;) fajny artykuł nie tylko ze wzgledu na tresc ale i sposob napisania ;);)
szczególnie podobało mi sie Tadadadammm ;)

Pomysł jest całkiem dobry. Jak się komuś nie podoba, że Drajwer robi błędy ortograficzne, to niech nie czyta - nie każdy zeżarł słownik Kopalińskiego :) A poważnie... Rozwiązanie z manifestem (niezależnie od tego czy użyjemy sposobu Drajwera czy po prostu dodamy taki plik do exe) jest kompletnie do dupy. W Delphi 5 nie działa to na TListView (wyskakują AV), a poza tym brane pod uwagę są tylko najbardziej podstawowe obiekty. Ja osobiście gorąco polecam rozwiązanie www.delphi-gems.com

Spoko drajwer, im sie niezbyt podobało a ja u ciebie widze fajny styl a ortografie i gram. to on jeszcze poprawi w końcu ma 12 czy 13 lat!

Błagam... Popraw błędy ortograficzne i stylistyczne, bo czytanie Twojego artykułu to KOSZMAR! :(

Fajnie szkoda tylko ze ja nie lubie XP i przez to nie lubie jak cos wygląda jak XP źle mi się kojaży ale artykuł jest OK

Po co generowanie?
I po co TMemo lepiej jak już to TStringList
Może to usunąć(generowanie) i do FAQ ?

Może i ciekawe, ale mnie bardziej podoba się sposób pokazany w moim artykule ;)

Z tym artykułem to niebył najlepszy pomysł:(