// 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.

 


Zugriffe seit 6.9.2001 auf Delphi-Ecke