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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2013, 18:30   #1
FomAW
Пользователь
 
Регистрация: 14.03.2013
Сообщений: 30
По умолчанию Проблемы с выводом изображения

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Mask1:=TBitMap.Create;
  Mask1.LoadFromFile('spr1_1.bmp');
  BM:=TBitMap.Create;
  BM.LoadFromFile('spr2_1.bmp');
  Buffer:=TBitMap.Create;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=39 then
  begin
    BitBlt(Buffer.Canvas.Handle,0,0,60,80,Mask1.Canvas.Handle,0,0,SRCPaint); //Копируем маску в буфер
    BitBlt(Buffer.Canvas.Handle,0,0,60,80,BM.Canvas.Handle,0,0,SRCAnd); //Копируем спрайт в буфер
    BitBlt(Form1.Canvas.Handle,0,0,320,240,Buffer.Handle,0,0,SRCCopy); //Перемещаем буфер на форму
  end;
end;
Изображение не выводится на экран. Что тут не так?

Последний раз редактировалось FomAW; 31.03.2013 в 18:39.
FomAW вне форума Ответить с цитированием
Старый 31.03.2013, 18:35   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

BM:=BM.Create; ???
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2013, 18:45   #3
FomAW
Пользователь
 
Регистрация: 14.03.2013
Сообщений: 30
По умолчанию

Исправил, но изображение всеравно не выводится.

Последний раз редактировалось FomAW; 31.03.2013 в 18:52.
FomAW вне форума Ответить с цитированием
Старый 01.04.2013, 02:41   #4
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Не рисуется потому что не заданы размеры для Buffer. То есть у вас buffer размерами 0х0. Но и в этом случае нарисуется фигня.
Пример во вложении. Вот, только не удалось мне избавиться от мерцания. Мерцание происходит из-за восстановления фона.
Получается, что этот метод рисования не чем не лучше того, что написано в книге "Основы программирования в TurboDelphi (Автор Культин Н.)" на 145 странице.
Вложения
Тип файла: rar Новая папка.rar (1.39 Мб, 14 просмотров)
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 03.04.2013, 14:50   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Цитата:
Не рисуется потому что не заданы размеры для Buffer. То есть у вас buffer размерами 0х0. Но и в этом случае нарисуется фигня.
Непонятно написал как-то. Извиняюсь за второй пост, но правка уже запрещена.
Вы пишите
Код:
Bm:=TBitmap.Create;
Bm.LoadFromFile('путь,имя файла');// здесь Bm получает все свойства картинки,
// и размеры в том числе.
buffer:=TBitmap.Create;
// На данный момент у переменной buffer width и height равны 0.
// Их нужно задать, чтобы в эту область записывать растр.
buffer.width:= Some_width; //Some_width - необходимая ширина.
buffer.height:= Some_height; //Some_height - необходимая высота.
// вот теперь в buffer будет записываться растр.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 07.04.2013, 03:11   #6
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Что-то не спалось, и делать было нечего. Подправил чутка прогу. Теперь нет мерцания. Если не скачал, скачиваешь вложение на 1 Мб 38Кб, потом скачиваешь этот архив на 2 Кб. Заменяешь Unit из первого вложения на этот и радуешься жизни.
Вложения
Тип файла: rar Unit1.rar (1.1 Кб, 11 просмотров)
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 07.04.2013, 15:39   #7
FomAW
Пользователь
 
Регистрация: 14.03.2013
Сообщений: 30
По умолчанию

Rin Спасибо!
FomAW вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баннерная сеть (Проблема с выводом ссылки и изображения) Nick_Bl PHP 21 08.04.2013 21:59
C# Проблемы выводом таблицы PROkaZZZniK Помощь студентам 1 22.11.2011 12:31
Проблемы с выводом Hemul PHP 4 17.02.2011 20:59
Проблема с выводом изображения Mira-girl Общие вопросы C/C++ 0 23.10.2010 22:32
Проблемы с выводом Drozd Oleg Общие вопросы C/C++ 1 21.02.2010 22:12