Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2008, 10:39   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию Типа DrawGrid

Написал небольшую игру с использованием DrawGrid. На канве отрисовываются объекты(.*bmp). Ненравится одно при сворачивании или при перекрытии моей формы другим приложением картинки затираются(как на канве самой формы). Ручками не очень хочется перерисовывать. Дык вот если какой нибудь компонент наподобие этго грида но чтобы картинки не затирались (как при отрисовке на канве имджа).
SERG1980 вне форума Ответить с цитированием
Старый 29.07.2008, 11:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ручками не очень хочется перерисовывать
А чего? Вроде не очень сложно перерисовывать ячейки...
Помоему BergGrid хорошо работает с картинками в ячейках.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.07.2008, 12:49   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Чтобы незатиралось, нужно постоянно в DrawCell перирисовывать ячейки. Я на его основе делал окошко, по типу квип для смайликов, ничего не затиралось. Отрисовывал напрямую из ImageList.Draw(Canvas, x,y, NumberImage); так быстрее. Наверно у вас что-то с отрисовкой, можно поглядеть отрисовку.
Вот как выглядит:

Последний раз редактировалось Alter; 29.07.2008 в 12:53.
Alter вне форума Ответить с цитированием
Старый 29.07.2008, 13:01   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

В любом случае нужно перерисовывать каждый раз. И эта операция не должна занимать много времени.
Если даже и есть компонент, который сохраняет картинку (тот же TImage), то в любом случае он неявно выполняет эту перерисовку самостоятельно.
Arigato вне форума Ответить с цитированием
Старый 29.07.2008, 13:05   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от Alter Посмотреть сообщение
Чтобы незатиралось, нужно постоянно в DrawCell перирисовывать ячейки. Я на его основе делал окошко, по типу квип для смайликов, ничего не затиралось. Отрисовывал напрямую из ImageList.Draw(Canvas, x,y, NumberImage); так быстрее. Наверно у вас что-то с отрисовкой, можно поглядеть отрисовку.
Вот как выглядит:
отрисовываю следующим образом (например по нажатию кнопки)
Код:
DG.Canvas.StretchDraw(DG.CellRect(X,Y),MyBitMap);
SERG1980 вне форума Ответить с цитированием
Старый 29.07.2008, 13:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
например по нажатию кнопки
Дык так у тебя перерисовка не будет автоматическая.
Почитай что Альтер сказал.
I'm learning to live...

Последний раз редактировалось Stilet; 29.07.2008 в 13:22.
Stilet вне форума Ответить с цитированием
Старый 29.07.2008, 13:44   #7
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

да как говорит Alter всё получается. Но картинки и их количество постоянно меняются, при этом одна картинка сменятся другой
SERG1980 вне форума Ответить с цитированием
Старый 29.07.2008, 14:49   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

SERG1980
Вам необходимо хранить 2-х мерный массив, описывающий все картинки, которые требуется отрисовать в DrawGrid.
Массив может быть типа TBitMap и содержать непосредственно картинки, или же типа Integer и содержать некоторые индексы, например, на картинке в компоненте TImageList
Arigato вне форума Ответить с цитированием
Старый 29.07.2008, 15:11   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вам необходимо хранить 2-х мерный массив
Разве что для удобства...
Цитата:
при этом одна картинка сменятся другой
Не вижу помех перерисовывать все, как бы оно не менялось.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.07.2008, 15:13   #10
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Вот и я о том же что надо ручками. Потому ии спросил если компонент в котром не надо лишних действий
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разноцветный DrawGrid Andr Компоненты Delphi 18 21.08.2013 20:10
Типа Страж RealSHELS Софт 10 27.08.2008 20:44
Типа гонки Pedro Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 20.08.2008 13:10
Типа ICQ ClauZzz Работа с сетью в Delphi 9 13.02.2007 14:18