Главная страница
    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.014 c
1-1127200569
Bonjovy
2005-09-20 11:16
2005.10.09
В Printer.Canvas.TextOut рубится длинный текст


11-1107935465
Barloggg
2005-02-09 10:51
2005.10.09
Как узнать тип родителя?


6-1118663749
Новичек
2005-06-13 15:55
2005.10.09
Странная ошибка сокета 10035.


14-1127193741
Ega23
2005-09-20 09:22
2005.10.09
С днём рождения! 20 сентября


5-1102447881
Arnold
2004-12-07 22:31
2005.10.09
Каак создать TButton с возможностью загрузки рисунков?





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