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