Официальный сайт студ.городка НГТУ
Программирование и БД » Контролы в WinXP выглядят как в WinXP 

#1  17.06.06 20:58

Контролы в WinXP выглядят как в WinXP

Подскажите, как сделать, чтобы в 6-ом билдере кнопки выгладили по XP-шному, а не под Win95?
Вот нашел как для дельфи сделать:

********************************************
Чтобы исправить эту проблему и продолжить нормально кодить под Win XP делаем следущее:

1) Создаем файл (например mainfest.txt) со следующим содержимым и сохраняем его:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="Microsoft.Windows.ApplicationName"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>ApplicationDescription</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>



2)Создаем еще один файл , в нем пишем:


1 24 [путь к файлу]/manifest.txt и сохранем его в папку ../Delphi/Bin/ с именем resfile.rc   

3)Запускаем файл ../Delphi/Bin/brcc32.exe resfile.rc

4)После всех этих действий в папке ../Delphi/Bin/ появится файлик с именем resfile.res
его нужно прописать в разделе implementation вашего приложения...
Т.е. после implementation пишется следущее:



{$R resfile.res}


********************************************


Все работает. Но в дельфи. У меня последний пункт не получается, в билдере. Наверное я не знаю как включать в проект файлы *.res . (8(|) (G.S.)

Offline

#2  17.06.06 21:03

Re: Контролы в WinXP выглядят как в WinXP

RusRusRus качаешь программку:
http://vicking.narod.ru/files/XP_manifest_generator.zip
Скармливаешь ей exe-ник, она создает .manifest файл. В-дальнейшем таскаешь этот манифест вместе с экзешником в одном каталоге.

Offline

#3  17.06.06 21:14

Re: Контролы в WinXP выглядят как в WinXP

Спасибо. Работает. А вот, чтобы не таскать .manifest файл за собой? Можно?

Offline

#4  27.06.06 11:37

Re: Контролы в WinXP выглядят как в WinXP

тоже интересуюсь...
как в visual c++ 2005 сделать такое
там в свойствах проекта есть manifest, только я не догнал куда что вписать

Offline

#5  27.06.06 13:58

Re: Контролы в WinXP выглядят как в WinXP

simplex, в 2005 же вроде и так нормальные кнопочки...

Offline

#6  27.06.06 15:28

Re: Контролы в WinXP выглядят как в WinXP

если с фрэймворк'ом (C#) работать, то может и нормальные...
а если через mfc?

Offline

#7  27.06.06 15:44

Re: Контролы в WinXP выглядят как в WinXP

Сейчас я понимаю модеров, которые ругаются на юзеров, которые не хотят пользоваться поиском! Дольше грузил винду и запускал builder.

Методом научного тыка нашёл простой способ прикрепить ресурсы к программе: Project - Add to Project ... Теперь открывай resfile.res

Исправлено fermer (27.06.06 16:19)

Offline

#8  28.06.06 10:46

Re: Контролы в WinXP выглядят как в WinXP

fermer, тебе было в напряг, но ты это сделал, дабы показать "юзерам" свою крутость?

Offline

#9  28.06.06 18:52

Re: Контролы в WinXP выглядят как в WinXP

simplex, я изначально не знал как решить эту проблему, так как с builder'ом не работал. Решение оказалось очевидным, поэтому такой вопрос можно было не поднимать а хоть чуточку приложить усилие для поиска решения.

Таким же простым способ можно подключит RES файл к проекту на Delphi.

Более того я считаю, что между Delphi и C++Builder'ом нет никакой разницы, кроме надписей в исходниках.

Если проводить аналогию по примеру приведённому RusRusRus'ом из DelphiWorld, то можно найти ещё одно простейшее решение, которое перед глазами у разработчика программы на C++ Builder:

//Начальный шаблон для программы на C++Builder
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

Здесь надо обратить внимание на строчку:
#pragma resource "*.dfm",
которая является эквивалентом строчки из Delphi:
{$R *.DFM}

Вывод:
#pragma resource "resfile.res"

Сложно было подумать?

Исправлено fermer (28.06.06 18:53)

Offline

#10  29.06.06 00:09

Re: Контролы в WinXP выглядят как в WinXP

ну написал и молодец
к чему понты эти?
лучше напиши как в visual studio 2005 прицепить .manifest к проекту на C++

Offline

#11  29.06.06 00:44

Re: Контролы в WinXP выглядят как в WinXP

Если нужны кнопки XP то делай аналогично и с VS2005. Как это сделать я не скажу, так как VS2005 нету и не будет.

Трюк с resfile.res работает с любым языком программирования. Только надо почитать в help'е как подключать ресурсы (RES) к программе.

А понты к тому, что лучше самому разобрать это и понять.

Вот ещё заметил (раньше не обращал внимания): .manifest это тоже самое, из чего был сделан resfile.res

Offline

#12  29.06.06 06:17

Re: Контролы в WinXP выглядят как в WinXP

fermer, все клево работает. Теперь можно manifest за собой не таскать. Спасибо.

Offline

Программирование и БД » Контролы в WinXP выглядят как в WinXP 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.029 сек.
Выполнено 14 запросов.