Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

LoadIcon и Windows Vista   Найти похожие ветки 

 
Pavel__   (2006-09-17 01:44) [0]

Здравствуйте. Использую функцию LoadIcon для загрузки стандартных изображений системы, код выглядит так:

Image.Picture.Icon.Handle := LoadIcon(0, IDI_WARNING);

При этом загружаются изображения в стиле XP, что нежелательно. Сталкивался ли кто-нибудь с подобным? Есть ли иные методы загрузки, корректно работающие в системах от 98 до Vista? Заранее благодарен.


 
Anatoly Podgoretsky ©   (2006-09-17 10:43) [1]

Нежелательно другое, системные иконки должны соответсвовать стилю. Но кто тебя заставляет загружать системные иконки, раз ты такой противник системы?


 
Pavel__   (2006-09-17 15:04) [2]


> Нежелательно другое, системные иконки должны соответсвовать
> стилю. Но кто тебя заставляет загружать системные иконки,
>  раз ты такой противник системы?

Вот именно. В Vista они должны соответствовать стилю Vista а не XP.

Приведу пример:
Application.MessageBox показывает в Vista те самые изображения, что не удивительно — насколько я помню эта функция — часть системы, а не VCL.

Тот код, который я приводил в первом посте, показывает все так, как должно быть по замыслу разработчиков системы вплоть до Vista. Т.е в win98 изображения выглядят как в win98, в winXP — как winXP. А вот с Vista — проблемы. Может все дело в недоработанности системы?

Прошу прощения за сумбурность.


 
Eraser ©   (2006-09-17 16:16) [3]

> Application.MessageBox показывает

а что показывает Windows.MessageBox?


 
Pavel__   (2006-09-17 16:49) [4]

Надеюсь, уважаемый Eraser хотел лишь проверить мою память:

function TApplication.MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;
...
try
 Result := Windows.MessageBox(TaskActiveWindow, Text, Caption, Flags);
finally


Windows.pas:

function MessageBox; external user32 name "MessageBoxA";


 
guav ©   (2006-09-17 17:07) [5]

может, LoadImage, там флагов больше ?


 
Eraser ©   (2006-09-17 17:36) [6]

> [4] Pavel__   (17.09.06 16:49)

действительно, MessageBox - не то, попробуйте MessageDlg.


 
Pavel__   (2006-09-17 18:00) [7]

2 Eraser

> действительно, MessageBox - не то, попробуйте MessageDlg

Там используется все тот же LoadIcon с IDI_*-константами.

2 guav

Пытаюсь использовать так:

Image.Picture.Icon.Handle :=
LoadImage(0, MAKEINTRESOURCE(OIC_WARNING), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE);


Ничего не рисуется. Можно ли примерчик рабочий привести? Спасибо.


 
Pavel__   (2006-09-18 14:57) [8]

Все еще актуально..


 
guav ©   (2006-09-18 17:45) [9]

> Пытаюсь использовать так:
>
> Image.Picture.Icon.Handle :=
> LoadImage(0, MAKEINTRESOURCE(OIC_WARNING), IMAGE_ICON, 0,
> 0, LR_DEFAULTSIZE);
>
> Ничего не рисуется. Можно ли примерчик рабочий привести?
> Спасибо.


LoadImage(0, MAKEINTRESOURCE(OIC_WARNING), IMAGE_ICON, 0,
0, LR_DEFAULTSIZE or LR_SHARED);
Там ещё другие флаги есть, можно их попробовать, но вряд ли поможет..

можно попробовать посмотреть ресурсы висты и поискать там нужные картинки и ненужные картинки. и тогда можно быдет явно грузить нужные.
или может манифест какой-то нужен, как с темами ХР.


 
Pavel__   (2006-09-18 19:09) [10]

2 guav

Спасибо, только что увидел:

IDI_WARNING = IDI_EXCLAMATION;
...
IDI_EXCLAMATION = MakeIntResource(32515);
...
OIC_WARNING = OIC_BANG;
...
OIC_BANG = 32515;


Видимо, все-таки дело в недоработанности системы...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 4.85 c
6-1149137424
Roman80
2006-06-01 08:50
2006.10.29
Outlook Express


2-1160821158
Sanya_BBB
2006-10-14 14:19
2006.10.29
Как преобразовать double к string ?


4-1150282634
SamProf
2006-06-14 14:57
2006.10.29
Как создать виртуальнкю файловую систему


15-1160116585
Шмель
2006-10-06 10:36
2006.10.29
Выбор монитора


4-1150378776
inri13666
2006-06-15 17:39
2006.10.29
Как управлять сервисом в Win XP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский