Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
Re: Rectangle zwischen 2 Kästen entfernen
23. Nov 2009, 16:02
Delphi-Quellcode:
var
z: ZlBereich;
s: SpBereich;
x1, y1, x2, y2: Integer;
lZelle, lZelleR, lZelleU: TObject;
begin
{erstmal komplett Schwarz}
Canvas.Brush.Color := clBlack;
Canvas.FillRect(Canvas.ClipRect);
for z:=0 to zMax do
begin
for s:=0 to sMax do
begin
lZelle := lab.zelle[s,z];
x1 := xWert(s);
y1 := yWert(z);
x2 := xWert(s) + ZW;
y2 := yWert(z) + ZW;
if Assigned(lZelle) then
Canvas.Brush.Color := clBtnFace // belegte Zelle
else
Canvas.Brush.Color := clGray; // nicht belegte Zelle
Canvas.FillRect(Rect(x1, y1, x2, y2));
if Assigned(lZelle) then
begin
{Rand rechts übermalen}
lZelleR := lab.zelle[s + 1, z];
if Assigned(lZelleR) then
Canvas.FillRect(Rect(x2, y1, xWert(s + 1), y2));
{Rand unten übermalen}
lZelleU := lab.zelle[s, z + 1];
if Assigned(lZelleU) then
Canvas.FillRect(Rect(x1, y2, x2, yWert(z + 1)));
{Ecke rechts/unten}
if Assigned(lZelleR) and Assigned(lZelleU) and
Assigned(lab.zelle[s + 1, z + 1]) then
Canvas.FillRect(Rect(x2, y2, xWert(s + 1), yWert(z + 1)));
end;
end;
end;
end;
|
|
Zitat
|