Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отключить стиль XP для контрола 
:(
    Опции темы
Delphist
  Дата 13.11.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



На форме лежит компонент TXPManifest, который позволяет задать приложению стиль XP. У меня возникла задача, для некоторых контролов отключать стиль ХР. Нужна помощь в создании процедуры типа:
Код

procedure XPThemeOff(AWinControl: TWinControl)
begin
???
end;

А также хотелось бы иметь процедуру включающая для контрола стиль XP.
Код

procedure XPThemeOn(AWinControl: TWinControl)
begin
???
end;



--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Yanis
Дата 13.11.2006, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



А я так не думаю smile
Код
// on
SetWindowTheme (Button1.Handle, nil, nil);
// off
SetWindowTheme (Button1.Handle, ' ', ' ');



--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Delphist
Дата 14.11.2006, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(Yanis @  13.11.2006,  17:12 Найти цитируемый пост)
SetWindowTheme

Какой юнит необходимо подключить для работы данной функции.

Это сообщение отредактировал(а) Delphist - 14.11.2006, 09:37


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
dumb
Дата 14.11.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



Цитата(Delphist @  14.11.2006,  09:37 Найти цитируемый пост)
Какой юнит необходимо подключить для работы данной функции.

UxTheme
PM MAIL   Вверх
Delphist
Дата 14.11.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(Yanis @  13.11.2006,  17:12 Найти цитируемый пост)
SetWindowTheme (Button1.Handle, nil, nil);

Как включить стиль XP для WinControl'a без использования TXPManifest


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Alexeis
Дата 14.11.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Delphist, никакого это API.
Написал по MSDN. К сожалению сижу под Win2000 потому не могу запустить, но компилится нормально.
Код

function SetWindowTheme(hwnd : HWND; pszSubAppName : PWideChar;
                        pszSubIdList : PWideChar) : LongWord; stdcall;
                        external 'UxTheme.dll';

procedure TForm1.FormCreate(Sender: TObject);
begin
 SetWindowTheme(button1.Handle,' ', ' ');
end;


Добавлено @ 10:45 
Цитата(dumb @  14.11.2006,  10:22 Найти цитируемый пост)
UxTheme 

Упс. Не знал что такой есть  smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Yanis
Дата 14.11.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Delphist @  14.11.2006,  11:31 Найти цитируемый пост)
Как включить стиль XP для WinControl'a без использования TXPManifest 

Лучше всего по моему - это раположить файлик *.manifest в папке с исполняемым файлом. Имя файла должно быть как и имя исполняемого файла + расширение .manifest Файл такого содержания:
Код
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    type="win32"
    name="DelphiApplication"
    version="1.0.0.0" 
    processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>


Это сообщение отредактировал(а) Yanis - 14.11.2006, 10:48


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Delphist
Дата 14.11.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 2
Всего: 3



Цитата(Yanis @  14.11.2006,  11:46 Найти цитируемый пост)
Лучше всего по моему - это раположить файлик *.manifest в папке с исполняемым файлом. Имя файла должно быть как и имя исполняемого файла + расширение .manifest Файл такого содержания:

Компонент TXPManifest у меня есть и как он работает я знаю. Дело в том,  что
XPMainfest действовует на все формы MDI - приложение, а мне нужно чтобы он действовал на отдельную его дочернюю форму. 



--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Akella
Дата 14.11.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(Delphist @  14.11.2006,  10:31 Найти цитируемый пост)
Как включить стиль XP для WinControl'a без использования TXPManifest 

при компиляции и запуске программы в WinXP стиль "работает" по умолчанию.
Но вот если программу откомпилировали под Win2000, например, которая ничего не знает ни про какие стили, то для того чтобы при запуске приложения под WinXP "заработал" стиль, в папку программу нужно кинуть файлик ИмяПрограммы.exe.manifest в директорию программы. Этот файл можно позаимствовать у любой другой программы, поищи в папке program files.
Вышеизложенное проверено  лично мной.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0946 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.