Форум: "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