procedure DrawMarkers(hdc: HDC; r: TRect; penColor: TColor);
const
PENWIDTH = 2;
var
Anchors: TRect;
VertMid: Integer;
HorzMid: Integer;
index: Integer;
begin
with TCanvas.Create
do
try
Handle := hdc;
Pen.Width := PENWIDTH;
Pen.Color := penColor;
InflateRect(r, PENWIDTH, PENWIDTH);
Brush.Style := bsClear;
//Das Rechteck als Rahmen
Rectangle(r);
HorzMid := (r.Right - r.Left)
div 2;
VertMid := (r.Bottom - r.Top)
div 2;
//---------- Hier werden die Marker gezeichnet -------------
for index:=7
downto 0
do
case index of
7:
begin
//Links oben
Anchors.Left := r.Left - 2;
Anchors.Right := r.Left + 3;
Anchors.Top := r.Top - 2;
Anchors.Bottom := r.Top + 3;
Rectangle(Anchors);
end;
6:
begin
//Mitte oben
Anchors.Left := Anchors.Left + HorzMid;
Anchors.Right := Anchors.Left + 4;
Rectangle(Anchors);
end;
5:
begin
//Rechts oben
Anchors.Left := r.Right - 2;
Anchors.Right := Anchors.Left + 4;
Rectangle(Anchors);
end;
4:
begin
//Rechts Mitte
Anchors.Top := Anchors.Top + VertMid;
Anchors.Bottom := Anchors.Top + 4;
Rectangle(Anchors);
end;
3:
begin
//Links Mitte
Anchors.Left := r.Left - 2;
Anchors.Right := Anchors.Left + 4;
Rectangle(Anchors);
end;
2:
begin
//Links unten
Anchors.Top := r.Bottom - 2;
Anchors.Bottom := Anchors.Top + 4;
Rectangle(Anchors);
end;
1:
begin
//Unten Mitte
Anchors.Left := Anchors.Left + HorzMid;
Anchors.Right := Anchors.Left + 4;
Rectangle(Anchors);
end;
0:
begin
//Unten rechts
Anchors.Left := r.Right - 2;
Anchors.Right := Anchors.Left + 4;
Rectangle(Anchors);
end;
end;
//---------- Hier wurden die Marker gezeichnet -------------
finally
Free;
end;
end;