Einzelnen Beitrag anzeigen

Hartfrid Krause

Registriert seit: 20. Feb 2007
90 Beiträge
 
Delphi XE6 Professional
 
#1

Rechteck in stringgrid teilen und einfärben

  Alt 22. Nov 2011, 15:42
Ich möchte in einer stringgrid eine beliebige Zelle in drei gleichgroße Rechtecke aufteilen und diese kleineren Rechtecke mit verschiedenen Farben ausfüllen.
Dasselbe mit zwei Flächen (=Dreiecken) ist gelöst, aber die Erweiterung zu drei funktioniert nicht.

Für dreiecke färben habe ich eine Procedur:

PROCEDURE DreieckeFaerben(Sender:TObject;ACol,ARow:Integer;R ect:TRect;
State:TGridDrawState;col1,col2:Tcolor);
var pl:array of TPoint;
cr:TRect;
begin
with stringgrid1 do
begin
setlength(pl,4);
cr:=CellRect(acol,arow);
pl[0]:=cr.TopLeft;
pl[1].X:=cr.BottomRight.X;
pl[1].Y:=cr.TopLeft.Y;
pl[2]:=cr.BottomRight;
pl[3]:=pl[0];
canvas.Brush.Color:=col2;
canvas.Polygon(pl);
canvas.FloodFill(pl[1].x-2,pl[1].y+2,clwhite,fssurface);
pl[0]:=cr.TopLeft;
pl[1].X:=cr.TopLeft.X;
pl[1].Y:=cr.BottomRight.Y;
pl[2]:=cr.BottomRight;
pl[3]:=pl[0];
canvas.Brush.Color:=col1;
canvas.Polygon(pl);
canvas.FloodFill(pl[1].x+2,pl[1].y-2,clwhite,fssurface);
canvas.Brush.Style:=bsclear;
end;
end;

Soetwas entsprechendes für eine Dreiteilung such ich noch.
  Mit Zitat antworten Zitat