Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизСоздание диалогов Найти похожие ветки
← →
Николай Быков (2002-09-22 19:39) [0]Расскажите: как можно делать диалоги такие же как и в WinXP/2000 и OfficeXP. Такие желтенькие которые там появляются иногда.
← →
Shadow (2002-09-22 21:01) [1]Ручками, дорогой, ручками!
p.s. Поработай с Rect, что-бы красивые формочки делать
← →
Rouse_ (2002-09-23 02:07) [2]Сие зовется манифест
Сойздай файл XP.rc
Добавь в него следующий текст:
<?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>
Подключи к проекту File\Open = XP.rc
Все - все твои компоненты имеют стиль ХР (но только в самом ХР)
← →
Николай Быков (2002-09-23 13:12) [3]Да я не это просил.
В ХР часто вылазиют из трэя всякие сообщения систем, иногда диалоги. В офисеХР часто вылазиют дмалоги и иногда сообщения такие. Манифест такое не делает. Это можно вызывать компонентом( только не знаю каким), но я хочу без компонента (может АПИ есть?). Если это от манифеста зависит, то почему этоже можно увидить в Win 98/ME/2000/XP ?
← →
Николай Быков (2002-09-23 13:14) [4]Я имел ввиду. Как вызвать такой дилог.
Ведь для вызова Messagedlg вы не рисуете форму rect"oм и показываете ее модалом. Вы просто вызываете соотв функцию
и все
← →
Rouse_ (2002-09-24 00:31) [5]Это стандартный THint, поиши в факе на тему изменения хинта, API наколько я знаю прямого вызова таких диалогов нет
← →
cypher (2002-09-24 00:56) [6]Shell_NotifyIcon
см. структуру NOTIFYICONDATA на www.msdn.microsoft.com
или поищи че-нить про Balloon Hint на гугле
← →
cypher (2002-09-24 00:57) [7]http://www.mvps.org/vbnet/code/subclass/shellnotifyballoontip.ht вот тут пример вроде есть, на бейсике правда... =)
но ведь настоящим программистам это не помеха?! =)
← →
kex86 (2002-09-24 01:40) [8]>Rouse_
Я попробовал манифест-не работает. Нельзя ли по-подробнее
← →
Monstrische (2002-09-24 12:17) [9]Rouse_
И я пробовал и тоже не работает :( А очень хочется.
← →
Rouse_ (2002-09-25 23:24) [10]Вот полная статья:
Если ты программируешь на Делфи и юзаешь последние «Окошки», то
должен был заметить одну неприятную вешь: В Windows XP программы,
сделанные на Delphi не поддерживают визуальные стили. Обидно, но
поправимо ?. Дело в том, что все переделанные елементы, которые
отображаются в новом стиле, находятся в отдельной библиотеке
ComCtl32.dll версии 6.0. (Если ты судорожно бросился искать этот
файл, чтобы заменить им 5-ую версию в Windows 98, то остановись. ComCtl32.dll версии 6.0 работает только в Windows XP!)
Как же получается, что одни программы отображаются в новом стиле,
а другие нет? Разработчики Windows XP для отображения приложений в
старом стиле оставили версию 5.0, а для новых стилей добавили версию
6.0. Для того, чтобы новые программы корректно работали под
предыдушими ОС в них по прежнему делается ссылка на старую версию библиотеки, а для новой ОС в ресурсах программы делается указатель
на возможность поддержки новой версии библиотеки.
Вот наша задачка уже и прояснилась, необходимо просто напросто
дополнительно запихнуть в программу этот ресурс и дело в шляпе.? Что
же нам надо туда запихнуть?
А вот что (эдакий xml код):
Код приведен выше
Примечание:
Вместо ApplicationName укажите название программы
Вместо ApplicationDescription – описание программы
Для тех, кто не знает как помешаются ресурсы в программу -
приведу пример.
1.Сохраните приведенный выше код в файл (например manifest.txt).
2.Создайте файл такого содержания: 1 24 [путь до
файла]/manifest.txt и сохраните его в папку ../Program
Files/Delphi/Bin/ с именем: resfile.rc
3.Запустите файл: ../Program Files/Delphi/Bin/brcc32.exe
resfile.rc
4.В папке ../Program Files/Delphi/Bin/ появится файл с названием
resfile.res – этот файл необходимо прописать в разделе implementation вашего приложения.
Вот так выглядела наша программа до встраивания манифеста:
Далее идут две картинки
Для тех, кто не знает как помешаются ресурсы в программу -
приведу пример.
1.Сохраните приведенный выше код в файл (например manifest.txt).
2.Создайте файл такого содержания: 1 24 [путь до
файла]/manifest.txt и сохраните его в папку ../Program
Files/Delphi/Bin/ с именем: resfile.rc
3.Запустите файл: ../Program Files/Delphi/Bin/brcc32.exe
resfile.rc
4.В папке ../Program Files/Delphi/Bin/ появится файл с названием
resfile.res – этот файл необходимо прописать в разделе implementation вашего приложения.
Вот так выглядела наша программа до встраивания манифеста:
А
это она же, только после усовершенствования:
Сразу же оговорюсь! Колонки компонента TListView – это
THeaderControl. Дело в том, что «родные» колонки компонента выдают
ошибку при наведении на них курсора мыши. В чем причина этой ошибки
я выяснить не смог, но замечу, что у меня Delphi6 PE. Как ведуд себя
программы, сделанные в других версиях Delphi – я не знаю.
Автор статьи Константин Тарабрин aka Delphir [delphir@times.lv]
Как видите, автор не я, а ссылка не сохранилась, приходится давать что есть
(оговорюсь это я нашел на http://www.cydsoft.com/vr-online/about.htm)
← →
Rouse_ (2002-09-25 23:37) [11]Надеюсь я помог, если что-то не получается вопросы в эту-же конфу, по возможности постараюсь ответить, но сразуже оговорюсь, я лично ни в одной моей программе не испрользую манифест так как это слишком коряво выглядит (с моей точки зрения (хотя красиво, не спрорю))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c