Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание диалогов


Николай Быков ©   (2002-09-22 19:39:00) 

Расскажите: как можно делать диалоги такие же как и в WinXP/2000 и OfficeXP. Такие желтенькие которые там появляются иногда.


Rouse_   (2002-09-25 23:37:00) [1]

Надеюсь я помог, если что-то не получается вопросы в эту-же конфу, по возможности постараюсь ответить, но сразуже оговорюсь, я лично ни в одной моей программе не испрользую манифест так как это слишком коряво выглядит (с моей точки зрения (хотя красиво, не спрорю))


Rouse_   (2002-09-25 23:24:00) [2]

Вот полная статья:
Если ты программируешь на Делфи и юзаешь последние «Окошки», то
должен был заметить одну неприятную вешь: В 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)


Monstrische   (2002-09-24 12:17:00) [3]

Rouse_
И я пробовал и тоже не работает :( А очень хочется.


kex86   (2002-09-24 01:40:00) [4]

>Rouse_
Я попробовал манифест-не работает. Нельзя ли по-подробнее


cypher   (2002-09-24 00:57:00) [5]

http://www.mvps.org/vbnet/code/subclass/shellnotifyballoontip.htвот тут пример вроде есть, на бейсике правда... =)
но ведь настоящим программистам это не помеха?! =)


cypher   (2002-09-24 00:56:00) [6]

Shell_NotifyIcon
см. структуру NOTIFYICONDATA на www.msdn.microsoft.com
или поищи че-нить про Balloon Hint на гугле


Rouse_   (2002-09-24 00:31:00) [7]

Это стандартный THint, поиши в факе на тему изменения хинта, API наколько я знаю прямого вызова таких диалогов нет


Николай Быков   (2002-09-23 13:14:00) [8]

Я имел ввиду. Как вызвать такой дилог.
Ведь для вызова Messagedlg вы не рисуете форму rect"oм и показываете ее модалом. Вы просто вызываете соотв функцию
и все


Николай Быков   (2002-09-23 13:12:00) [9]

Да я не это просил.
В ХР часто вылазиют из трэя всякие сообщения систем, иногда диалоги. В офисеХР часто вылазиют дмалоги и иногда сообщения такие. Манифест такое не делает. Это можно вызывать компонентом( только не знаю каким), но я хочу без компонента (может АПИ есть?). Если это от манифеста зависит, то почему этоже можно увидить в Win 98/ME/2000/XP ?


Rouse_   (2002-09-23 02:07:00) [10]

Сие зовется манифест

Сойздай файл 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

Все - все твои компоненты имеют стиль ХР (но только в самом ХР)


Shadow   (2002-09-22 21:01:00) [11]

Ручками, дорогой, ручками!

p.s. Поработай с Rect, что-бы красивые формочки делать


Наверх

Титульная страница Поиск, карта сайта Написать письмо