Форум: "Основная";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
ВнизКак изменить рисунок фона на форме? Найти похожие ветки
← →
BillyJeans (2002-09-02 16:44) [0]Как изменить рисунок фона на форме?
← →
Игорь Шевченко (2002-09-02 16:49) [1]Обрабатывать сообщение WM_ERASEBKGND и рисовать фон.
← →
Ученик (2002-09-02 16:49) [2]procedure TForm1.FormShow(Sender: TObject);
begin
Brush.Bitmap := Image1.Picture.Bitmap
end;
← →
BillyJeans (2002-09-02 16:55) [3]что-то не получается :(
подробнее plz
← →
Игорь Шевченко (2002-09-02 17:38) [4]Например, вот так:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FBitmap : TBitmap;
procedure WMEraseBkGnd (var Message : TWMEraseBkGnd); message WM_ERASEBKGND;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
FBitmap := TBitmap.Create;
FBitmap.LoadFromFile("cool.bmp");
end;
procedure TForm1.WMEraseBkGnd(var Message: TWMEraseBkGnd);
var
DC : HDC;
begin
DC := TWMEraseBkGnd(Message).Dc;
StretchBlt(Dc,
0,
0,
Width,
Height,
FBitmap.Canvas.Handle,
0, 0,
FBitmap.Width,
FBitmap.Height,
SRCCOPY);
Message.Result := 1;
end;
end.
← →
BillyJeans (2002-09-03 09:53) [5]Всеравно ошибку выдает!
Мне бы пример из жизни...
← →
Ученик (2002-09-03 09:58) [6]>BillyJeans © (03.09.02 09:53)
В какой момент, какую ошибку ?
← →
ЮЮ (2002-09-03 09:59) [7]А Игорь Шевченко © (02.09.02 17:38) с потолка срисовал? :-)
← →
BillyJeans (2002-09-03 10:34) [8]Ошибка следующая:
Project raised exception class EAccessViolation
на строке
StretchBlt(Dc, 0, 0, Width, Height, FBitmap.Canvas.Handle, 0, 0,
FBitmap.Width, FBitmap.Height, SRCCOPY);
← →
Виктор Щербаков (2002-09-03 10:46) [9]Код рабочий, ты наверно забыл событию OnCreate формы назначить обработчик. Отсюда и ошибка :)
← →
BillyJeans (2002-09-03 11:00) [10]Получилось! Только вот как сделать, чтобы рисунок не растягивался, а форму заливало этим рисунком (как в windows на раб.столе)?
← →
Виктор Щербаков (2002-09-03 11:11) [11]примерно так
procedure TForm1.WMEraseBkGnd(var Message: TWMEraseBkGnd);
var
DC : HDC;
i, j: Integer;
begin
DC := TWMEraseBkGnd(Message).Dc;
for i := 0 to ClientWidth div FBitmap.Width do
for j := 0 to ClientHeight div FBitmap.Height do
BitBlt(Dc,
i * FBitmap.Width,
j * FBitmap.Height,
Width,
Height,
FBitmap.Canvas.Handle,
0, 0,
SRCCOPY);
Message.Result := 1;
end;
← →
BillyJeans (2002-09-03 11:42) [12]Всем спасибо, у меня все получилось!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c