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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 21:42   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Неизменяемый фон для canvas.

Каким образои можно добавить фоновую картинку, чтобы потом просто рисовать поверх неё с помощью свойства canvas (чтобы когда рисуешь эллипс, внутрення область не заливалась) . Может просто можно как-то отключить заливку?
Заранее благодарю. ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 07.06.2010, 22:10   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Bitmap1:= TBitMap.Create;
 bitmap2:= TBitMap.Create;

 bitmap2.Transparent:= true;

 Bitmap1.LoadFromFile('1.bmp');
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
 Canvas.Draw(0,0,bitmap1);
 Canvas.Draw(10,50,bitmap2);
в битмап1 грузишь картинку, на битмап2 рисуешь...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.06.2010, 22:26   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Bitmap1
bitmap2 -это переменные ? или компоненты? или не то -не другое? (простите за глупый вопрос - просто во втором номере журнала Программис уже показывали как добавлять , когда игру со змейкой делали- но там без комметариев как-то...)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 07.06.2010, 23:09   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы знаете компонент TBitMap(там же конструктор написан)
тем более при конструкторе...это значит что точно не компонент(или динамически создается)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.06.2010, 10:01   #5
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
а вы знаете компонент TBitMap(там же конструктор написан)
тем более при конструкторе...это значит что точно не компонент(или динамически создается)
попытаюсь понять ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 08.06.2010, 10:48   #6
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
(простите за глупый вопрос - просто во втором номере журнала Программис уже показывали как добавлять , когда игру со змейкой делали- но там без комметариев как-то...)
Все просто. Там спрайт змейки загружается из файла, в котором сам рисунок представляет из себя зеленый кружок на белом фоне. Поскольку поставлен параметр Transparent=true то цвет TransparentColor не рисуется (изначально этот параметр соответствует белому цвету)
Код:
Sprite:= TBitmap.create; // загружаем спрайт
Sprite.LoadFromFile(spr_name);
Sprite.Transparent:= true;
Вадим Буренков вне форума Ответить с цитированием
Старый 08.06.2010, 13:31   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
(изначально этот параметр соответствует белому цвету)
а разве не левому верхнему пикселю изображения?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.06.2010, 13:33   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Есть два способа нарисовать что-либо с прозрачностью (имеется ввиду с одним прозрачным цветом, а не альфа прозрачность), способы эти зависят от того каким образом и что мы рисуем:

1. Задать прозрачный цвет для рисуемого поверх фона битмапа (работает если выводим битмап функцией Canvas.Draw)

2. Задать прозрачную заливку (работает если выводим граф. примитив)
Canvas.Brush.Style := bsClear;
Теперь если нарисовать к примеру эллипс, то внутри он будет прозрачным.

Цитата:
а разве не левому верхнему пикселю изображения?
Может и да, а может и нет, я например этого не помню, т.к. никогда не пользуюсь этим способом, а использую TImageList + свойство Masked := true; Так намного удобнее.

Что касается белого цвета, то битмап при создании по умолчанию имеет белый цвет кисти, это точно.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 08.06.2010 в 13:38.
mutabor вне форума Ответить с цитированием
Старый 08.06.2010, 13:41   #9
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
Canvas.Brush.Style := bsClear;
интересно это )) ТОгда по-идее можно рисовать с помощью карандаша на форме поверх компонента image, в который и добавлен фон....да ведь ?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 08.06.2010, 13:48   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от vedro-compota Посмотреть сообщение
интересно это )) ТОгда по-идее можно рисовать с помощью карандаша на форме поверх компонента image, в который и добавлен фон....да ведь ?
Можно. .
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фон для ICQ на мобиле mrChester Свободное общение 12 25.05.2010 18:04
Фон =Kroshka= Microsoft Office Word 2 23.07.2009 14:39
Фон страницы для разных браузеров Makarov HTML и CSS 8 19.06.2009 22:32
Помогите нарисовать фон для формы... HunterMan Общие вопросы .NET 3 25.11.2008 10:52
Фон Стаханов_Андрей Помощь студентам 5 04.03.2008 08:20