...in einem nicht-MDI-Fenster ein Bild im Hintergrund gekachelt darstellen?
Autor: 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