Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание фона на форме

Delphi , Программа и Интерфейс , Интерфейс

Создание фона на форме

Как заполнить фон моей формы повторяющимся изображением?


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.

Код, который вы предоставили, это приложение Delphi, которое устанавливает фон формы повторяющимся изображением.

Вот как работает код:

  1. В обработчике события FormCreate создается новый объект TBitmap и загружается изображение из файла (cars.BMP в этом случае).
  2. В обработчике события FormPaint свойство Canvas формы используется для рисования битмап-изображения на форму.
  3. Изображение рисуется повторно по всей форме, рассчитывая координаты (X и Y) и затем рисуя битмап на этих координатах с помощью метода Canvas.Draw. Изображение повторяется в обе стороны потому, что код рассчитывает ширину (W) и высоту (H) битмап-изображения, а затем использует эти значения для увеличения координат X и Y при рисовании изображения. Это имеет эффект повторного изображения по всей форме.

Вот модифицированная версия кода, которая добавляет обработку ошибок и улучшает эффективность:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Bitmap := TBitmap.Create;
  try
    Bitmap.LoadFromFile('C:\WINDOWS\cars.BMP');
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  X, Y: Integer;
begin
  with Canvas do
  begin
    StretchBlt(0, 0, Width, Height, Bitmap.Canvas, 0, 0, Bitmap.Width, Bitmap.Height, srSrcCopy);
  end;
end;

В этой модифицированной версии обработчик события FormPaint использует метод StretchBlt для рисования битмап-изображения на форму. Это более эффективный способ рисовать изображение, которое нужно повторить по всей форме, потому что оно может использовать ускорение hardware. Кроме того, я добавил обработку ошибок в обработчик события FormCreate, чтобы поймать любые исключения, которые могут возникнуть при загрузке файла изображения. Если исключение возникает, будет появляться сообщение об ошибке.

В статье описывается создание фона на форме Delphi с помощью повторяющегося изображения, используя класс TBitmap и метод Canvas.Draw.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Интерфейс ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:05:34/0.0058069229125977/1