// Die Fläche einer
Form wird ja nach Position an das
// Hintergrundbild des Desktops angeglichen, d. h., das
// Hintergrundbild wird auf die Form
projiziert. Allerdings werden
// dabei alle
TLabel
übermalt. Außerdem zittert das Bild ent-
// sprechend der Rechner- bzw. Grafikkartenleistung beim schnellen
//
verschieben der Form.
// Getestet mit D4 unter WinME
unit test;
interface
uses
Windows,
messages,
Classes,
Forms;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormPaint(Sender: TObject);
private
{ Private-Deklarationen }
public
procedure OnMove(var aMsg: TWMMove); message WM_MOVE;
procedure zeichnen;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
dc: HDC;
procedure TForm1.FormCreate(Sender: TObject);
begin
dc := getdc(handle);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
releasedc(handle, dc);
end;
procedure TForm1.zeichnen;
begin
PaintDesktop(dc);
end;
procedure TForm1.OnMove(var aMsg: TWMMove);
begin
inherited;
if visible then zeichnen;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
zeichnen;
end;
end.
|