|
#1
|
||||
|
||||
Манифест в длл
Необходимо сделать в длл поддержку стилей Windows XP/Vista, даже, если приложение, вызывающее эту длл, не имеет этой поддержки (манифеста).
|
#2
|
|||
|
|||
Манифест - это просто xml файл.
Попробуй просто его положить в ресурсы либы. Сам файл можно взять в сырцах VCL. |
#3
|
||||
|
||||
Что такое манифест я знаю.
Проблема в том, чтоб заставить его работать в длл. Допустим у меня есть приложение без манифеста и оно вызывает функцию Х из длл с манифестом. В этой функции происходит показ диалога, который должен поддерживать стили XP/Vista, но у меня этот диалог показывает без оформления XP, хотя в ресурсах длл манифест есть. Пробовал просто кинуть файлы <имя приложения>.manifest и <имя длл>.manifest в папку с программой, но тоже не помогло. |
#4
|
|||
|
|||
Тогда гораздо сложнее. Надо "руками" инициализировать Theme API. Плотно не работал, так что советов особо дать не смогу
|
#5
|
||||
|
||||
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
|
||||
|
||||
во второй статье только про подключение библиотеки тем, а не о ее использовании, а в первой статье я мало чего понял...
|
#7
|
||||
|
||||
Цитата:
Любую прогу открываешь Resorce Hackerom вытаскиваешь manifest.res патом кладешь в папку с проектом... и ищешь это фразу в коде и дописываешь... {$R *.dfm} {manifest.res} |
#8
|
||||
|
||||
Цитата:
Прочитай 3-й пост этой темы... Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#9
|
||||
|
||||
{$R manifest.res}
...сказал, и загрустил от бесспорной своей правоты |
#10
|
||||
|
||||
Код:
uses XPman; — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#11
|
||||
|
||||
Ни Casper-Hacker, ни M.A.D.M.A.N. не поняли суть вопроса.
Задача подключить манифест для DLL, т.е. я написал бибилиотеку-плагин, которая может быть использована в приложении без манифеста. Мне нужно, чтобы по время использования этим приложением моей dll, само приложение работало без манифеста, а диалоги, кот. вызываются из моей библиотеки были оформлены как с манифестом. Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#12
|
||||
|
||||
Отключи манифест в приложении и подключи в dll. Диалоги из dll будут с манифестом, а контролы из приложения - без. В чем проблема то?
...сказал, и загрустил от бесспорной своей правоты |
#13
|
||||
|
||||
Хм... 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
|
||||
|
||||
Нет, не проверял, но до последнего был уверен что так оно и есть. тогда ownerdraw, либо вызывай диалог из другого процесса.
...сказал, и загрустил от бесспорной своей правоты Последний раз редактировалось 0nni, 16.03.2009 в 06:45. |
#15
|
||||
|
||||
На худой конец, можно скин использовать.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |