Заполнение фона формы рисунком 2Delphi , Программа и Интерфейс , ФормыЗаполнение фона формы рисунком 2
Оформил: DeeCo type TForm1 = class(TForm) Button1: TButton; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); private FWallpaper: TBitmap; procedure WMEraseBkGnd(var Msg: TWMEraseBkGnd); message WM_ERASEBKGND; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormDestroy(Sender: TObject); begin FWallpaper.Free; end; procedure TForm1.Button1Click(Sender: TObject); begin // Load the bitmap // Bild laden if OpenDialog1.Execute then begin if not Assigned(FWallpaper) then FWallpaper := TBitmap.Create; FWallpaper.LoadFromFile(OpenDialog1.FileName); Invalidate; end; end; procedure TForm1.WMEraseBkGnd(var Msg: TWMEraseBkGnd); var row, col: Integer; begin if not Assigned(FWallpaper) then inherited else begin // Draw the bitmap // Das Bild zeichnen for Row := 0 to ClientHeight div FWallpaper.Height do for Col := 0 to ClientWidth div FWallpaper.Width do BitBlt(Msg.Dc, Col * FWallpaper.Width, Row * FWallpaper.Height, FWallpaper.Width, FWallpaper.Height, FWallpaper.Canvas.Handle, 0, 0, SRCCOPY); Msg.Result := 1; end; { else } end; end. Перевод текста на русский язык: Это программное обеспечение Delphi, которое устанавливает фон формы с изображением, загруженным из файла с помощью OpenDialog1. Изображение отображается путем переопределения процедуры WMEraseBkGnd, которая вызывается, когда форма necesita перерисовать свой фон. Вот разбивка кода:
Вот некоторые предложения по улучшению:
Вот пример реализации некоторых из этих предложений:
В этом примере я добавил обработку ошибок в процедуре Button1Click, чтобы отображать сообщение при ошибке загрузки изображения. Я также добавил обработчик события FormResize, который вызывает Invalidate, когда форма изменяется размера, чтобы перерисовать фон. В статье описывается создание приложения на языке Delphi, которое позволяет заполнять фон формы рисунком с помощью функции BitBlt и обработки сообщения WM_ERASEBKGND. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |