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

Вниз

Использование GDI+   Найти похожие ветки 

 
Antonn ©   (2005-05-22 07:13) [0]

Здравствуйте! Использую GDI+ и появилось пара вопросов. В ВинХР уже присутствует gdiplus.dll поэтому все без проблем, но на W2k, например, нужно таскать с собой эту gdiplus.dll, без нее вылетает ошибка о ненахождении библиотеки, после чего программа закрывается. Так вот, можно ли мне в программе самому решать, когда использовать ГДИ+? А то ее библиотека грузится автостартом в приложении.


 
TUser ©   (2005-05-22 08:01) [1]

Конечно. Используй LoadLibrary.


 
charlie   (2005-05-22 08:03) [2]

Можно. Но если ты решаешь где-то использовать а где-то нет, то не проще ли написать универсальный код, пусть неподдерживающий GDIP?
А если все-же есть желание, тогда можно сделать все достаточно просто. Я, к сожалению, не вижу, какая у тебя версия дельфи. Если 7, тогда посмотри модуль UxTheme.InitThemeLibrary в качестве примера по загрузке быблиотеки и определению адреса процедур.

Вот кусочек:
     ThemeLibrary := LoadLibrary(themelib);
     if ThemeLibrary > 0 then
     begin
       OpenThemeData := GetProcAddress(ThemeLibrary, "OpenThemeData");
       CloseThemeData := GetProcAddress(ThemeLibrary, "CloseThemeData");
       DrawThemeBackground := GetProcAddress(ThemeLibrary, "DrawThemeBackground");

Далее процедурные переменные используются для вызова процедур. Ну, например, объявить тип:

type
 TGdiplusStartup = function({bla-bla-bla..}): Status;
var
 GdiplusStartup: TGdiplusStartup;

Загрузить dll, получить указатель GdiplusStartup := GetProcAdress(...), вызвать GdiplusStartup({bla-bla-bla..});

А еще лучше либо найти либо написать свой класс, реализующий все возможности, которые ты хочешь использовать, в зависимости от платформы. И будет хорошо. Вместо повсеместного писания if WinVers = wv2000 then ... else ... будет метод, который ты будешь вызывать, и который будет делать все проверки, выбирая правильный вариант вывода.


 
Antonn ©   (2005-05-22 08:35) [3]

TUser ©   (22.05.05 8:01) [1]
вот я и хотел узнать, с чего "начинается ГДИ", те с чего она  стартует.

charlie   (22.05.05 8:03) [2]
пока для меня сказанное мало понятно, но пойду покопаюсь.

> А еще лучше либо найти либо написать свой класс,
> реализующий все возможности,

мне надо только вывод линии с анизотропией. и все. ГДИ+ пока самый быстрый вариант, а так уже пытался придумать.


 
Antonn ©   (2005-05-22 08:40) [4]

Antonn ©   (22.05.05 8:35) [3]
вывод линии с анизотропией

антиалиасингом


 
charlie   (2005-05-22 08:53) [5]


> Antonn ©   (22.05.05 08:40) [4]
> Antonn ©   (22.05.05 8:35) [3]

Ну тогда нужна всего одна функция. А вот почитать с чего она стартует  http://www.rsdn.ru/article/gdi/gdiplus1.xml#EHBA


 
Antonn ©   (2005-05-22 09:31) [6]

charlie   (22.05.05 8:53) [5]
спасибо. жаль что в С я чайник:)



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

Форум: "Media";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.022 c
14-1127307165
Prohodil Mimo
2005-09-21 16:52
2005.10.09
как определить language for non-Unicode programs ?


1-1126841879
iskatel
2005-09-16 07:37
2005.10.09
TDataModule & mesages


3-1125279600
Булат
2005-08-29 05:40
2005.10.09
delphi база данных двойники


14-1127129758
Info
2005-09-19 15:35
2005.10.09
БФТ


1-1127241643
QwertyKz
2005-09-20 22:40
2005.10.09
шрифт заголовка окна





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский