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

Вниз

Заполнение фона   Найти похожие ветки 

 
Александр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 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
14-1100150947
novice_man
2004-11-11 08:29
2004.11.28
Destroy or Free


3-1097162482
sirsergio
2004-10-07 19:21
2004.11.28
Как остановить выполнение запроса программно


3-1099395648
axx
2004-11-02 14:40
2004.11.28
Помогите с синтаксисом СКЛ


14-1100244430
GreySerg
2004-11-12 10:27
2004.11.28
Как установить компоненты на другом пользователе ?


4-1098102737
Oyster
2004-10-18 16:32
2004.11.28
Отслеживание новых файлов