// Es wird der Hintergrund einer Form mit einem (Schachbrett)Muster
// ausgefüllt, welches bei Größenänderung des Fensters im selben
// Verhältnis gedehnt bzw. gestaucht wird. Man kann in der Prozedur
//
FormPaint ein anderes Muster entwerfen, wobei man darauf achten sollte,
// dass immer die ganze Fläche überzeichnet wird (also keine Lücken bleiben)
// und dass möglichst auch nicht überlappend gezeichnet wird, da es sonst
// zu Flackererscheinungen kommt.

// Getestet mit D4 unter WinME
      
var
farbe1,farbe2:Hbrush;
rc:TRect;
dc:HDC;

const
anzahl=12;

procedure TForm1.FormCreate(Sender: TObject);
begin
brush.style:=bsclear;
dc:=getdc(handle);
farbe1:=CreateSolidBrush(clLime);
farbe2:=CreateSolidBrush(clgreen);
SetMapMode(dc,MM_ANISOTROPIC);
SetWindowExtEx(dc,anzahl*anzahl,anzahl*anzahl,nil);
end;

procedure
TForm1.FormDestroy(Sender: TObject);
begin
releasedc(handle,dc);
deleteobject(farbe1);
deleteobject(farbe2);
end;

procedure
TForm1.FormResize(Sender: TObject);
begin
windows.GetClientRect(handle,rc);
SetViewportExtEx(dc,rc.right,rc.bottom,nil);
paint;
end;

procedure
TForm1.FormPaint(Sender: TObject);
var x,y:integer;
begin
for
y:=0 to anzahl-1 do
for x:=0 to anzahl-1 do begin
SetRect(rc,x*anzahl,y*anzahl,x*anzahl+anzahl,y*anzahl+anzahl);
if odd(x)=odd(y) then
FillRect(dc,rc,farbe1)
else
FillRect(dc,rc,farbe2);
end;
end;
 


Zugriffe seit 6.9.2001 auf Delphi-Ecke