Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.16;
Скачать: CL | DM;

Вниз

Как изменить рисунок фона на форме?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
3-50642
Kurt
2002-08-26 22:53
2002.09.16
Вопрос о компоненте QRBand! а точнее со свойством ColumnHeader


14-50952
Udjin
2002-08-21 16:59
2002.09.16
mp3 плеер под Linux


3-50611
_reset
2002-08-26 10:10
2002.09.16
Cвязанные таблицы (не могу разобраться)...


3-50587
Soft
2002-08-24 15:55
2002.09.16
Передача параметров в SQL запросе.


1-50687
maxim2
2002-09-05 07:52
2002.09.16
Подскажите функцию формирования опр. количества пробелов.