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

Вниз

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

 
Артем22   (2006-09-14 15:12) [0]

Подскажите пожалуйста, как можно загрузить графику формата PNG в DrawGrid?


 
DevilDevil ©   (2006-09-14 15:16) [1]

Как вариант - скачать из интернета PngImage. В процессе переконвертировать в Битмап, а с Битмапом проблем уже не должно быть


 
Артем22   (2006-09-14 18:48) [2]

Скачал PngImage, в хелпе нашел Drawing png over other formats. Только никак не понял, как вывести PNG с помощью этого на DrawGrid. Может поможете? =)


 
Vovan#1   (2006-09-14 19:06) [3]

>Скачал PngImage, в хелпе нашел Drawing png over other formats. Только никак не понял, как вывести PNG с помощью этого на DrawGrid. Может поможете? =)

Укажи PNGImage в uses - можешь грузить .png в TPicture. Загруженную картинку найдёшь в TPicture.Graphic.


 
Артем22   (2006-09-14 19:29) [4]

С загрузкой PNG разобрался сам. Только вот в чем проблема - если загрузить несколько файлов в ячейки DrawGrid (от пяти), то все ужасно тормозит. Процедура загрузки файлов у меня на DrawCell. Если поставить, например, на Button - то все нормально, но при прокрутке, кликах на ячейках и т.д. изображения исчезают.


 
Ketmar ©   (2006-09-14 19:31) [5]

> Процедура загрузки файлов у меня на DrawCell
а не пробовал в DrawCell "пи" вычислять с парой миллиардов знаков? знатоки говорят, что этот секретный код спасёт.


 
Артем22   (2006-09-14 20:03) [6]

Нет, не пробовал =)))

Так куда же эту чудо-процедуру поставит, чтобы не было тормозов и глюков с отрисовкой?..


 
Ketmar ©   (2006-09-14 22:41) [7]

> [6] Артем22   (14.09.06 20:03)
загружать картики ДО вывода grid"а.


 
Артем22   (2006-09-15 10:35) [8]

Ketmar, что-то у меня ничего не получается :(

Может быть, тогда скажете, как избавиться от глюков с отрисовкой, если процедура вывода повешена на Button?


 
Артем22   (2006-09-18 17:20) [9]

Неужели никто не может ответить?


 
Ketmar ©   (2006-09-18 17:46) [10]

> [8] Артем22   (15.09.06 10:35)
что-то повешано? куда-куда???


 
Артем22   (2006-09-18 18:04) [11]

Процедура вывода изображений находится на Button.Click


 
Ketmar ©   (2006-09-18 19:01) [12]

> [11] Артем22   (18.09.06 18:04)
тогда при чём тут грид?


 
Артем22   (2006-09-18 19:42) [13]

Потому что изображения выводятся в ячейки DrawGrid"a на Button.Click. Если выводить так, а не по DrawCell, то при прокруте Grid"a все изображения исчезают. Вот это и есть моя проблема.


 
Ketmar ©   (2006-09-18 20:23) [14]

> [13] Артем22   (18.09.06 19:42)
это не проблема. это нормальное поведение. путь решения её ты только что сам и указал.


 
Артем22   (2006-09-18 21:23) [15]

А если выводить по DrawCell - то все жутко тормозит, даже если загружаешь три файла.


 
Virgo_Style ©   (2006-09-18 21:27) [16]

Выводить - про DrawCell, загружать - когда угодно, хоть в OnCreate, хоть при первом отображении, здесь простор для фантазии


 
Артем22   (2006-09-18 23:08) [17]

Да вся проблема в том, что файлы лежат в отдельной директории, и их количество заранее неизвестно. Поэтому я использую SearchRec, узнаю кол-во изображений определенного формата (png), создаю столько ячеек, сколько и файлов, а затем - загружаю изображения:

[code]
FindFirst(Dir + "*.png", faAnyFile, sr);
for j:=0 to drawgrid1.ColCount-1 do
 for i:=0 to drawgrid1.RowCount-1 do
 begin
   PNG.LoadFromFile(Dir + sr.Name);
   rect:=drawgrid1.CellRect(j,i);
   drawgrid1.Canvas.StretchDraw(rect, PNG.Graphic);
   if FindNext(sr) <> 0 then break;
 end;
[/code]

Так что разделить загрузку файлов и их вывод вроде бы нелзья... Или это я такой тупой?


 
RASkov   (2006-09-19 00:14) [18]

Попробуй сделать так: При старте или по клику на кнопку или там еще где
заполнить вот такой массив
ArrPict: array of TBitMap;
ну конвертнул png в Битмап... сделал SetLength(ArrPict, <Кол-во картинок>);... заполнил... а уже на DrawCell выводи их из массива...


 
Германн ©   (2006-09-19 00:29) [19]

Ох чую, не тем путем пошел товарисч. Нужно менять TDrawGrid на что-то другое.


 
Артем22   (2006-09-19 07:23) [20]

А на что? На какой-то сторонний компонент? Может, посоветуете.

RASkov, попробую сделать так, как вы предлагаете...


 
Virgo_Style ©   (2006-09-19 08:41) [21]

Артем22   (18.09.06 23:08) [17]

Вывод (отрисовка) происходит каждый раз по мере надобности. Загрузить же можно один раз.

P.S. У меня страшное (жуткое, кровь леденящее) чувство, что я вижу кусочек OnDrawCell %-)


 
Артем22   (2006-09-19 20:47) [22]

Блин. Загружаю я файлы-изображения в массив. А как теперь вывести изображения из этого массива на DrawGrid? :) :)

Что-то ничего у меня не получается... :(


 
Virgo_Style ©   (2006-09-19 20:50) [23]

Артем22   (19.09.06 20:47) [22]
А как теперь вывести изображения из этого массива на DrawGrid

Точно так же, как выводились раньше


 
Артем22   (2006-09-19 21:29) [24]

Раньше выводились так:

 
rect:=drawgrid1.CellRect(j,i);
drawgrid1.Canvas.StretchDraw(rect, PNG.Graphic);


И как здесь вывести изображения из массива? Ох, туп я, туп :)))))


 
Virgo_Style ©   (2006-09-19 21:47) [25]

Артем22   (19.09.06 21:29) [24]
drawgrid1.Canvas.StretchDraw(rect, PNG.Graphic);


drawgrid1.Canvas.StretchDraw(rect, PNGArray[i].Graphic);


 
RASkov   (2006-09-19 23:03) [26]

Типа так:
DrawGrid1.Canvas.StretchDraw(Rect, PNGArray[ACol*DrawGrid1.ColCount+ARow].Graphic);


 
Артем22   (2006-09-20 21:51) [27]

Блин. Я точно тупейший программист в мире -- у меня не получается ни нормально загрузить PNG-файлы в массив, ни нормально вывести изображения на DrawGrid, несмотря на ваши многочисленные ответы...

При загрузке у меня -- access violation, понятно, что до вывода дело и не доходит...


 
RASkov   (2006-09-20 23:28) [28]

> [27] Артем22   (20.09.06 21:51)

Не переживай.... никтож незнает как ты там делаешь....



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

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

Наверх




Память: 0.53 MB
Время: 0.033 c
15-1159915299
Multy
2006-10-04 02:41
2006.10.29
Ну и что это за уродство?


15-1160029772
DiamondShark
2006-10-05 10:29
2006.10.29
Международный день работников образования


6-1149614620
Ezorcist
2006-06-06 21:23
2006.10.29
Вопрос по NAT (на примере ICQ)


2-1160722769
Dmitry_177
2006-10-13 10:59
2006.10.29
узнать путь папки system32


15-1159946070
Holy
2006-10-04 11:14
2006.10.29
Посоветуйте векторный граф.редактор