Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.02.2009, 22:30
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию Манифест в длл

Необходимо сделать в длл поддержку стилей Windows XP/Vista, даже, если приложение, вызывающее эту длл, не имеет этой поддержки (манифеста).
Ответить с цитированием
  #2  
Старый 17.02.2009, 22:36
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Манифест - это просто xml файл.
Попробуй просто его положить в ресурсы либы. Сам файл можно взять в сырцах VCL.
Ответить с цитированием
  #3  
Старый 17.02.2009, 22:50
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Что такое манифест я знаю.
Проблема в том, чтоб заставить его работать в длл.

Допустим у меня есть приложение без манифеста и оно вызывает функцию Х из длл с манифестом. В этой функции происходит показ диалога, который должен поддерживать стили XP/Vista, но у меня этот диалог показывает без оформления XP, хотя в ресурсах длл манифест есть.
Пробовал просто кинуть файлы <имя приложения>.manifest и <имя длл>.manifest в папку с программой, но тоже не помогло.
Ответить с цитированием
  #4  
Старый 18.02.2009, 00:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тогда гораздо сложнее. Надо "руками" инициализировать Theme API. Плотно не работал, так что советов особо дать не смогу
Ответить с цитированием
  #5  
Старый 19.02.2009, 23:23
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
Сообщение Theme API

Хм.. Здесь попробуй посмотреть(первое что выдал гугл ):
http://www.delphimaster.ru/articles/..._xp/index.html
http://base.vingrad.ru/view/47-Theme-API
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #6  
Старый 20.02.2009, 15:26
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

во второй статье только про подключение библиотеки тем, а не о ее использовании, а в первой статье я мало чего понял...
Ответить с цитированием
  #7  
Старый 14.03.2009, 20:46
Аватар для Casper-Hacker
Casper-Hacker Casper-Hacker вне форума
Начинающий
 
Регистрация: 19.05.2008
Сообщения: 147
Версия Delphi: x
Репутация: 15
Счастье

Цитата:
Сообщение от Karsh
Необходимо сделать в длл поддержку стилей Windows XP/Vista, даже, если приложение, вызывающее эту длл, не имеет этой поддержки (манифеста).

Любую прогу открываешь Resorce Hackerom вытаскиваешь manifest.res
патом кладешь в папку с проектом...
и ищешь это фразу в коде и дописываешь...

{$R *.dfm}
{manifest.res}
Ответить с цитированием
  #8  
Старый 15.03.2009, 02:37
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Цитата:
Сообщение от Casper-Hacker
Любую прогу открываешь Resorce Hackerom вытаскиваешь manifest.res
патом кладешь в папку с проектом...
и ищешь это фразу в коде и дописываешь...

{$R *.dfm}
{manifest.res}

Прочитай 3-й пост этой темы...
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #9  
Старый 15.03.2009, 10:11
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

{$R manifest.res}
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием
  #10  
Старый 15.03.2009, 18:03
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
uses XPman;
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #11  
Старый 15.03.2009, 19:59
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

Ни Casper-Hacker, ни M.A.D.M.A.N. не поняли суть вопроса.
Задача подключить манифест для DLL, т.е. я написал бибилиотеку-плагин, которая может быть использована в приложении без манифеста. Мне нужно, чтобы по время использования этим приложением моей dll, само приложение работало без манифеста, а диалоги, кот. вызываются из моей библиотеки были оформлены как с манифестом.
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #12  
Старый 15.03.2009, 21:53
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

Отключи манифест в приложении и подключи в dll. Диалоги из dll будут с манифестом, а контролы из приложения - без. В чем проблема то?
__________________
...сказал, и загрустил от бесспорной своей правоты
Ответить с цитированием
  #13  
Старый 15.03.2009, 22:37
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

Хм... Casper-Hacker , 0nni , M.A.D.M.A.N. а вы проверяете то что пишите?

Например:
Код:
library example;

uses
  Forms, StdCtrls, XPMan;

{$R *.res}

var f:TForm;
    b:TButton;

procedure tmp;
begin
end;

exports
 tmp name 'tmp';

begin
 f := TForm.CreateParented(0);
 f.Width := 400;
 f.Height := 200;
 f.Position := poScreenCenter;
 f.FormStyle := fsStayOnTop;
 f.Visible := true;
 b := TButton.Create(f);
 b.Top := 8;
 b.Left := 8;
 b.Height := 25;
 b.Width := 75;
 b.Caption := 'Button';
 b.Parent := f;
 b.Visible := true;
end.

Хоть и добавлен XPMan вид формы не меняется.
А если манифест добавить в главное приложение, то с манифестом оформлена и главная форма, и та, что создается в dll.

Как сделать так, чтоб только dll - используя манифест похоже что никак, наверно придётся разбираться с ThemeAPI
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #14  
Старый 15.03.2009, 23:17
Аватар для 0nni
0nni 0nni вне форума
Начинающий
 
Регистрация: 13.12.2008
Адрес: Туапсе
Сообщения: 161
Репутация: 20
По умолчанию

Нет, не проверял, но до последнего был уверен что так оно и есть. тогда ownerdraw, либо вызывай диалог из другого процесса.
__________________
...сказал, и загрустил от бесспорной своей правоты

Последний раз редактировалось 0nni, 16.03.2009 в 06:45.
Ответить с цитированием
  #15  
Старый 16.03.2009, 06:10
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

На худой конец, можно скин использовать.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter