Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

PNG и DrawGrid


Страницы:   1 2

Артем22 ©   (2006-09-14 15:12:00) 

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


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

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

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


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

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

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


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

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


Virgo_Style   (2006-09-19 21:47:00) [4]

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


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


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

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

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


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


Virgo_Style   (2006-09-19 20:50:00) [6]

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

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


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

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

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


Virgo_Style   (2006-09-19 08:41:00) [8]

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

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

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


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

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

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


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

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


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

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


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

Да вся проблема в том, что файлы лежат в отдельной директории, и их количество заранее неизвестно. Поэтому я использую 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]

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


Virgo_Style   (2006-09-18 21:27:00) [13]

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


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

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


Ketmar   (2006-09-18 20:23:00) [15]

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


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

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


Ketmar   (2006-09-18 19:01:00) [17]

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


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

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


Ketmar   (2006-09-18 17:46:00) [19]

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


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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо