Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

TDXImageList   Найти похожие ветки 

 
Green_Templar ©   (2005-03-20 02:41) [0]

Нужно загрузить растр в TDXImageList после запуска программы. Гружу dximagelist1.items[].picture.bitmap.loadfromfile(), но после этого растр всё равно не рисуется dximagelist.items[].draw(). Удалось устранить проблему, добавив строчку dxdraw1.finalize;dxdraw1.initialize; Но ведь это слишком тормозно так делать! Может есть какой другой способ делать рисовабельными картинки, загруженные после запуска программы (после инициализации дхдрова)?


 
kruel   (2005-03-20 15:00) [1]

DXImageList1.Items.Restore


 
Green_Templar ©   (2005-03-20 15:38) [2]

Спасибо огромное, Kruel!
Вот ещё идея появилась: а что если для того, чтобы нарисовать спрайт, использовать не form1.dximagelist1.items[0].draw, а взять адрес p:=@form1.dximagelist1.items[0], а потом p^.draw? Но какой тип должен быть у указателя p? p:^tdximagelist.items ему не нравится, а брать p:^tdximagelist нет толку.


 
Kruel   (2005-03-20 16:06) [3]

А зачем через адреса? Я так понимаю, нужна просто именованная ссылка на tdximagelist.item, чтоб его нарисовать. Укажи какой класс через TPictureCollectionItem():

var p:Pointer;
...
p:=form1.dximagelist1.items[0]
TPictureCollectionItem(p).Draw(DXDraw.Surface,0,0,0);


 
Green_Templar ©   (2005-03-20 21:09) [4]

Вообще-то нужно нарисовать спрайт из имэджлиста как можно быстрее. Я так понимаю, что если мы пишем
p:=form1.dximagelist1.items[0]
TPictureCollectionItem(p).Draw(DXDraw.Surface,0,0,0);
что, как я понимаю, то же самое что form1.dximagelist1.items[0].draw();
то оно каждый раз при рисовании будет сначала находить айтэм №0, а потом рисовать, а я хочу чтобы оно его сразу рисовало :) ! На моём Celeron633 и i810 video приходится бороться за каждый фрэйм :)


 
Green_Templar ©   (2005-03-21 22:24) [5]

Помогите, пожалуйста!!!


 
Omar2002 ©   (2005-03-23 10:46) [6]

DXDraw1.Flip;


 
Omar2002 ©   (2005-03-23 10:49) [7]

никаких dxdraw1.initialize не надо, нужно просто свойство DXDraw компонента DXImageList установить DXDraw1, ну или как он там у тя называется.


 
Green_Templar ©   (2005-03-23 21:31) [8]

Omar2002, вы меня не поняли.
Нужно не просто нарисовать form1.dximagelist1.items[0], а сделать это самым быстрым способом, как удачно грузить растры я уже понял.


 
A22 ©   (2005-03-24 18:21) [9]

DirectDraw вообще имеет слабое отношение к самым быстрым способам :(
хотя, если нет вариантов, плюнь на все эти ссылки и т.д. и переведи свои картинки в адаптивную палитру. bmp 256 цветов все же будет быстрее на экран выводиться из-за меньшего объема копируемой памяти


 
Green_Templar ©   (2005-03-26 01:27) [10]

А как это сделать? Тупо в пэйнте поменять атрибуты рисунка? Там палитра портится.


 
Omar2002 ©   (2005-03-27 11:40) [11]

нет, в пэйнте не надо. лучше в фотошопе, там можно сохранить локальную палитру рисунка, тогда он максимально будет похож на свой 16 битовый оригинал.



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

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
14-1117694379
12DFBDDh
2005-06-02 10:39
2005.06.29
файлы djvu


3-1116312633
ANB
2005-05-17 10:50
2005.06.29
Как побыстрее удалить большую часть записей из таблицы ?


14-1117612604
Тульский
2005-06-01 11:56
2005.06.29
Мирный договор с Японией


4-1114814453
Igor_
2005-04-30 02:40
2005.06.29
TServiceApplication и два TService


3-1116315431
stud
2005-05-17 11:37
2005.06.29
посоветуйте структуру таблицы