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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2009, 19:40   #1
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию буфер в GDI+?

Скажите а есть ли в GDI+ буфер в котором можно прорисовывать линии и другие графические элементы а потом выводить на экран? Если нет то как восстановить изображение после того как экран очистится при его скрытии из области видимости ?
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 31.07.2009, 20:07   #2
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Ты имеешь в виду буффер для Canvas? Если да то просто добавть переменную:
buffer:TBitmap;
В нее рисуй всю графику а потом выводи например на форму:
Form1.canvas.draw(0,0,Buffer).
Вадим Буренков вне форума Ответить с цитированием
Старый 31.07.2009, 20:34   #3
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию

А у bitMap есть указатель handle:HDC я что не могу его найти ?
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 31.07.2009, 21:04   #4
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Указатель: buffer.Canvas.Handle
Код:
var
  buffer: TBitmap;
begin
  buffer:=TBitmap.Create; //создаём объект
  buffer.Width:=500; //устанавливаем размеры
  buffer.Height:=300;
  //здесь рисуем
  buffer.Free; //уничтожаем объект
А лучше рисуйте в Image, из него изображение не пропадает и восстанавливать не придётся.
_Dmitry вне форума Ответить с цитированием
Старый 31.07.2009, 22:53   #5
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию

Может я что то делаю не так но по моему GDI+ по фиг на чём выводить для не го везде paintbox и только стоит увести из поля видимости как изо брожение теряется .
GDI:= TGPGraphics.Create(form1.Image1.Can vas.Handle);
pen:= TGPPen.Create(MakeColor(255, 170, 200, 255));
Sbrush:=TGPSolidBrush.Create(MakeCo lor(255,255,255,255));
GDI.FillRectangle(SBrush,-1,-1,1000,1000);
GDI.DrawRectangle(pen,pointSta.x,po intSta.y,move.x,move.y);
GDI.Free;
pen.Free;
Brush.Free;
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 31.07.2009, 23:25   #6
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию

Всё сам забрался надо было в качестве буфера использовать BitMap и указать его hendle а потом просто его выводить через Draw(0,0,bitMap);
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 01.08.2009, 10:43   #7
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

CreateDIBSection в 32х битном формате + CreateCompatibleDC и да поможет вам Бог
BOBAH13 вне форума Ответить с цитированием
Старый 09.03.2013, 15:01   #8
Dimon82Al
Новичок
Джуниор
 
Регистрация: 14.02.2012
Сообщений: 2
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
CreateDIBSection в 32х битном формате + CreateCompatibleDC и да поможет вам Бог
Не могли бы вы показать пример кода рисования в буфере и последующего вывода на экран? (в GDI+)
Dimon82Al вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# : GDI+ TextBox Natok Помощь студентам 2 17.05.2009 19:53
Вопрос по GDI+ (почитать в поток/буфер) CrazyProgramer Мультимедиа в Delphi 8 06.01.2009 23:41
GDI EdNovice Win Api 4 12.02.2008 09:14
GDI plus API delphi_coder Win Api 1 28.09.2007 12:41