...tile a non-MDIframe window with a backgrund bitmap?
Author: P. Below
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.
printed from
www.swissdelphicenter.ch
developers knowledge base