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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2006, 13:07   #1
vicvtor
Иркутянин!!!
Пользователь
 
Аватар для vicvtor
 
Регистрация: 01.11.2006
Сообщений: 83
Вопрос

как наполнить канвас формы каким нибудь рисунком?

вот ещё одна проблемка. я когда канвас формы заполняю рисунком, он заливается поверх всех кнопок и лабелов. как это можно исправить?

Последний раз редактировалось zetrix; 18.11.2006 в 09:49.
vicvtor вне форума Ответить с цитированием
Старый 06.11.2006, 13:40   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

procedure TForm1.FormCreate(Sender: TObject);
var
BMP: TBitmap;
begin
Bmp:=TBitmap.Create;
Bmp.LoadFromFile('picture.bmp');
Form1.Canvas.Draw(0,0,Bmp);
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 16.11.2006, 17:32   #3
selenux
Пользователь
 
Регистрация: 14.11.2006
Сообщений: 23
По умолчанию

Блитингом.
Подцепить модуль Windows и использовать BitBlt

HDC параметры это Canvas.Handle.

Последний параметр в зависимости от того как копировать.
Если 1 в 1 то SRCCOPY.
selenux вне форума Ответить с цитированием
Старый 16.11.2006, 18:11   #4
UMmi
 
Регистрация: 06.11.2006
Сообщений: 8
По умолчанию

Цитата:
Сообщение от selenux Посмотреть сообщение
Блитингом.
Подцепить модуль Windows и использовать BitBlt

HDC параметры это Canvas.Handle.

Последний параметр в зависимости от того как копировать.
Если 1 в 1 то SRCCOPY.
А не мог бы ты подробней, selenux, например есть картинка 1.bmp( или ipg и т.п...) есть канва. Надо канву заполнить этим рисунком.
UMmi вне форума Ответить с цитированием
Старый 17.11.2006, 13:26   #5
selenux
Пользователь
 
Регистрация: 14.11.2006
Сообщений: 23
По умолчанию

uses Windows;

..........


var
Bmp: TBitmap;

begin

Bmp := TBitmap.Create;
Bmp.LoadFromFile('1.bmp');

BitBlt(
canvas.handle, //куда засунуть
0, 0,//позиция
Bmp.Width,
Bmp.Height,
Bmp.Canvas.handle,
0, 0,//точка откуда начинается копирование
SRCCOPY);


Bmp.Free;

end;

Вроде так( я сейчас не при Делфи).
Если нужно растянуть по всей канве то вместо BitBlt надо использовать StretchBlt(см SDK);
selenux вне форума Ответить с цитированием
Старый 17.11.2006, 14:21   #6
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
если нужно растянуть ...
скорее всего надо замостить, а это уже наверное через циклы
zetrix вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заполнить StringGrid???? Anna_new Помощь студентам 15 19.04.2008 00:34
Заполнить TTreeView Leonis Компоненты Delphi 6 27.03.2008 13:02
Как автоматом заполнить поле? Stanislav PHP 4 09.03.2008 01:57
Заполнить массив случайными числами forumu Общие вопросы Delphi 13 03.12.2007 22:11
ComboBox как заполнить из БД scrazy БД в Delphi 2 28.05.2007 14:49