Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-50929
Jo
2002-08-21 09:03
2002.09.16
Подскажите где можно взять документацию на MemProof?


1-50682
id_privin
2002-09-04 12:43
2002.09.16
Почему падает деструктор


1-50815
DeMoN-777
2002-09-03 17:33
2002.09.16
Медиа


3-50622
Zemal
2002-08-26 13:01
2002.09.16
Как конвертнуть строку из кодовой стр. 866 (DOS) в 1251 (Win)?


6-50886
Dmitry_Raduzhan
2002-07-10 08:33
2002.09.16
К знатокам WinSock





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский