Фоновый рисунок формы
Модератор: Модераторы
-
nalex
- незнакомец
- Сообщения: 7
- Зарегистрирован: 23.06.2007 19:31:11
- Откуда: Новосибирск
- Контактная информация:
Фоновый рисунок формы
Как наложить на форму фоновый рисунок?
На событие OnPaint
Код: Выделить всё
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Draw(0,0, Image1.Picture.Graphic);
end;
nalex
При создании формы:
При создании формы:
Код: Выделить всё
procedure TForm1.Form1Create(Sender: TObject);
Var
gr: TGraphic;
Begin
gr:=TGraphic.Create;
gr.LoadFromFile('Название_файла');
form1.Canvas.Draw(0,0, gr);
gr.Free;
End;
Последний раз редактировалось Vadim 14.03.2009 14:50:05, всего редактировалось 1 раз.
А мона ещё и растянуть...
to Vadim
У меня это вариан почему-то не захотел работать... ругается 'SIGSEGV' на строчку gr.Create.
И еще, предложенные варианты насколько я понимаю "наклеивают" рисунок на форму как есть, если изображение меньше, то на форме останутся непрокрашенные места. Можно поступить немного по другому, для случая когда необходимо затекстурировать форму (например под камень или метал).
У меня это вариан почему-то не захотел работать... ругается 'SIGSEGV' на строчку gr.Create.
И еще, предложенные варианты насколько я понимаю "наклеивают" рисунок на форму как есть, если изображение меньше, то на форме останутся непрокрашенные места. Можно поступить немного по другому, для случая когда необходимо затекстурировать форму (например под камень или метал).
Код: Выделить всё
procedure TForm1.FormPaint(Sender: TObject);
var bitmap: TBitmap;
begin
bitmap:=TBitmap.Create;
bitmap.LoadFromFile('image.bmp');
Form1.Canvas.Brush.Bitmap:=bitmap;
Form1.Canvas.Rectangle(0,0,Width,Height);
bitmap.Free;
end; Andreich писал(а):У меня это вариан почему-то не захотел работать...
Ой, я немного неправильно написал.
Код: Выделить всё
gr:=TGraphic.Create;Vadim, а если сделать немножко ресайз формы, - картинка не пропадает?
Logo
Пропадёт.
Потому что всего один раз рисуется. Если форма предполагает изменение размеров, тогда в OnPaint надо засовывать Draw(). Правда это отчётливо замедляет процесс перерисовки формы при ресайзе. Даже на глаз становится видно, как сначала отрисовывается форма, а потом, с некоторой задержкой, сверху накладывается рисунок.
Я, поэтому, фоновые рисунки не применяю. Их можно, в принципе, накладывать на форму с фиксированными размерами, тогда этот "дефект" не заметен. 
Пропадёт.
