Текущий архив: 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.5 MB
Время: 0.044 c