Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 583

•  TDictionary Custom Sort  6 599

•  Fast Watermark Sources  6 369

•  3D Designer  9 319

•  Sik Screen Capture  6 703

•  Patch Maker  7 084

•  Айболит (remote control)  7 088

•  ListBox Drag & Drop  5 955

•  Доска для игры Реверси  97 496

•  Графические эффекты  7 290

•  Рисование по маске  6 584

•  Перетаскивание изображений  5 457

•  Canvas Drawing  5 826

•  Рисование Луны  5 537

•  Поворот изображения  5 058

•  Рисование стержней  3 623

•  Paint on Shape  2 864

•  Генератор кроссвордов  3 750

•  Головоломка Paletto  3 019

•  Теорема Монжа об окружностях  3 828

•  Пазл Numbrix  2 519

•  Заборы и коммивояжеры  3 219

•  Игра HIP  2 186

•  Игра Go (Го)  2 117

•  Симулятор лифта  2 499

•  Программа укладки плитки  2 149

•  Генератор лабиринта  2 633

•  Проверка числового ввода  2 303

•  HEX View  2 635

•  Физический маятник  2 255

 
скрыть

Delphi Sources

Заполнение фона формы рисунком 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.