ПредишенСледващото

Windows XP има мениджърът (тема управител), който се променя външния вид на повечето стандартни съоръжения Windows. Misrosoft твърди, че версията на библиотеката COMCTL32.DLL старата съдържа код, за да поддържа различни платформи Windows. Microsoft мъдро реши да почисти съдържанието на COMCTL32.DLL да подобрим тези в Windows XP. Сега се оказва, че има две версии на библиотеката: старата (версия 5.8), което е обратно съвместим всички предишни версии на Windows (включително XP) и новата версия (версия 6), който е съвместим само с XP (и на следните версии на Windows).

Каква е манифест?

Какво е очевидна, и каква роля играе в избора на версия 6.0 COMCTL32.DLL библиотека за моята кандидатура? Манифест - XML ​​документ да бъде podlinkovan ресурси в молбата Ви. Обикновено ресурси се използват за съхраняване на неща, като изображения, икони и курсори на мишката. (За да използвате ресурсите, можете да прочетете в статията ми. Забележка. Преводач) XML документ, когато е свързан към секцията ресурс позволява да решите коя версия на Windows XP да използва COMCTL32.DLL.

Как да го направя?

За да свържете XML манифеста в молбата Ви, първо трябва да знаем, константите, предоставени от Microsoft. Когато добавите ресурс в молбата Ви, има редица група и сериен номер, свързан с ресурса. Номерът на група обикновено се нарича приятелски име. Ако погледнете проводници ресурси (ресурс Explorer), снабдени с Delphi под формата на демонстрационен проект (Намира) ще видите група, наречена "Strings" (Strings), "Bitmaps" (снимки), "Икони" (икони), или "Cursos" (курсори мишка) - това е просто представяне на числото. Номерът на група за "Манифест" (Манифест) - 24, под заглавия С разпределените от Microsoft. Номер манифест да се определи версията на COMCTL32.DLL библиотека - 1 (също в съответствие с C заглавия, разпределени от Microsoft). Тази информация ще бъде необходима, когато ние създаваме нов ресурс (.RES файл), за да се свържете с нашата молба. За да се създадат необходимите файлове .RES ние трябва да се създаде .RC файл, който ще съдържа нашата XML манифест, който принадлежи към съответната група, а броят на ресурса. Компресираният-архива, включени в този документ, ще видите два файла:

WindowsXP.RC файл съдържа instrutsii за да се свържете WindowsXP.Manifest (XML-документ), а именно:

Сега, когато имаме тези два файла трябва да използваме ресурсите Delphi компилатор за съставяне на .RC файла. В резултат на това ние ще WindowsXP.RES файл, който може да се свърже с нашата молба. За съставянето на ресурс в командния ред:

Разбира се, аз мисля, че сте поставили в променливата от обкръжението до директорията BIN Delphi.

След компилация, ще видите WindowsXP.RES файл в същата директория. Последната стъпка към вашата кандидатура е WindowsXP-съвместими, този ресурс файл, за да се свържете с вашата кандидатура. Най-лесният начин да направите това е да се добавят следните насоки във вашия проект файл, или основната форма:

най-вероятно ще трябва да се примири, че линията точно зад директивата, която вече съществува в молбата Ви, точно зад priedlozheniem изпълнение. След като сте се свързали с приложението ви е WindowsXP.RES компилирате вашата кандидатура и да го стартирате. заявление Тема мениджър Windows ще предизвика ума си към други приложения, написани за Windows XP.

предупреждения

Microsoft предупреждава разработчици, които са взели много код от COMCTL32.DLL библиотека, и че е необходимо внимателно да се разгледат всички аспекти на работата на компоненти, преди да разпредели нова версия. В моя опит мога да кажа, че може да има проблеми със съвместимостта с Delphi. От друга страна, намерих само един проблем - компонент TListView. Ако използвате TListView в режим на дисплей (Виж Style) vsReport, ще имате проблеми с TColumns имотите. По време на стартиране, когато се опитате да използвате заглавията на колоните, указващи вида на дисплея имате грешка ядрото (Kernel грешка).

Като цяло, виж какво стана: projectxp.zip

Коригиране на проблеми с TListView (благодарение на Евгений Иванов)

Започнах да се търсят начини за решаване на този пропуск, тъй като и двете Delphi 6 Актуализация 1 не помогне сделка с този проблем. Разтворът е както следва:

  1. Отворени "ComCtrls.pas" и намери "TCustomListView.UpdateColumn"
  2. Намерете следния ред.
  1. Замества го с:
  1. Запази Comctrls.pas. Сега TListView не предизвиква грешка в режим vsReport под Windows XP.

Коригиране на проблеми с TPageControl

Проблем с настройка на цвета на фона на clBtnFace TTabSheet.
Както знаете TPageControl е контейнер TTabSheet: TPageControl нормално възприема манифест на Windows XP, но това е право, докато не добавите TTabSheet.

Разтворът е както следва:

  1. Отворете модула "ComCtrls.pas" и за линията изглежда "TTabSheet.UpdateTabShowing"
  2. Ще видите следния текст:
  1. Добавете следния ред в процедурата:
  1. Ако вашият TPageControl създали повече от една TTabSheet, може би, когато стартирате приложението, ще видите всички компоненти, които са изготвени на първата страница (TTabSheet). Няма нужда да се паникьосвайте. Намерете начин "TPageControl.Loaded" и да я промените да изглежда като следния код:

Добавянето на код прави TPageControl мине през всички страници преди шоуто. Със сигурност това е малко грозно, но тя работи. Ако имате други методи за решаване на този проблем, да ме уведомите.

Коригиране на проблеми с TTrackBar

TTrackBar - извинете ме, но това, текущата позиция?

Съвет показваща текущата стойност TTrackBar преместете плъзгача е удобно, това е, че няма да се наложи да добавите TLabel за това.

  1. Отворете "ComCtrls.pas" и да намерят "TTrackBar.CreateParams".
  2. Ще видите следния код:
  1. Добави състояние "или TBS_TOOLTIPS" в линия "Стил: =". Крайният резултат трябва да бъде:
  1. Запазване ComCtrls.pas и се насладете на ред.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!