Форум: "Media";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизЗаполнение фона Найти похожие ветки
← →
Александр1 (2004-08-25 10:00) [0]Как заполнить фон моей формы повторяющимся изображением?
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.
Немогу понять почему не работает?????
← →
Profi © (2004-08-25 15:04) [1]Александр1 (25.08.04 10:00)
inc увеличивает указанную величину на указанный порядок, иначе на 1. inc (x,w) - сразу присвоет x значение w равное width и тут же произойдет выход из цикла, оставь просто inc(x). Тоже и с y.
← →
Mihey_temporary © (2004-08-25 22:35) [2]Прикол в том, что скопировал код себе - и работает!
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.
← →
Mihey_temporary © (2004-08-25 22:37) [3]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:38) [4]2 ЗкщашЖ читать как 2 Profi // :sorry
← →
Profi © (2004-08-25 22:40) [5]Mihey_temporary © (25.08.04 22:37) [3]
Пардон, не разобрался! Не увидел with bitmap do.
← →
Александр1 (2004-08-27 14:12) [6]Mihey_temporary Слушай я тоже сейчас первым делом попробовал скопировать товой приведённый код и всё работает. Только никак не пойму чего ты там на колдовал. Ну ладно в принципе не важно. Всё работает. Всем спасибо!
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.05 c