![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заполнение фона [D5, D7, Win95/98, WinXP]
Александр1 © (2004-08-25 10:00:00)Как заполнить фон моей формы повторяющимся изображением?
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Bitmap: TBitmap;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('C:\WINDOWS\cars.BMP');
end;
procedure TForm1.FormPaint(Sender: TObject);
var
X, Y, W, H: LongInt;
begin
with Bitmap do
begin
W := Width;
H := Height;
end;
Y := 0;
while Y < Height do
begin
X := 0;
while X < Width do
begin
Canvas.Draw(X, Y, Bitmap);
Inc(X, W);
end;
Inc(Y, H);
end;
end;
end.
Немогу понять почему не работает?????
Александр1 (2004-08-27 14:12:00) [1]Mihey_temporary Слушай я тоже сейчас первым делом попробовал скопировать товой приведённый код и всё работает. Только никак не пойму чего ты там на колдовал. Ну ладно в принципе не важно. Всё работает. Всем спасибо!
Profi (2004-08-25 22:40:00) [2]Mihey_temporary © (25.08.04 22:37) [3]
Пардон, не разобрался! Не увидел with bitmap do.
Mihey_temporary (2004-08-25 22:38:00) [3]2 ЗкщашЖ читать как 2 Profi // :sorry
Mihey_temporary (2004-08-25 22:37:00) [4]2 ЗкщашЖ
> inc увеличивает указанную величину на указанный порядок,
> иначе на 1. inc (x,w) - сразу присвоет x значение w равное
> width и тут же произойдет выход из цикла, оставь просто
> inc(x). Тоже и с y.
Inc(x, w) увеличитx на w, т.е. просто выполнит x := x + w, а это именно то, чего автор хотел.
Mihey_temporary (2004-08-25 22:35:00) [5]Прикол в том, что скопировал код себе - и работает!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Bitmap: TBitmap;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('C:\pic1.bmp');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Bitmap.Free;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
X, Y, W, H: LongInt;
begin
with Bitmap do
begin
W := Width;
H := Height;
end;
Y := 0;
while Y < Height do
begin
X := 0;
while X < Width do
begin
Canvas.Draw(X, Y, Bitmap);
Inc(X, W);
end;
Inc(Y, H);
end;
end;
end.
Profi (2004-08-25 15:04:00) [6]Александр1 (25.08.04 10:00)
inc увеличивает указанную величину на указанный порядок, иначе на 1. inc (x,w) - сразу присвоет x значение w равное width и тут же произойдет выход из цикла, оставь просто inc(x). Тоже и с y.