Der Code ist mittlerweile etwas an die neuen Angepasst:
Delphi-Quellcode:
procedure TFotoBook.PaintGrid(Page: TImageEnvect; Show: Boolean = True);
var
i : Integer;
j : Integer;
begin
// alle Layer deselektieren, sonst würden wir nur auf das aktuelle Layer zeichen
Page.LayersCurrent := 0;
// Zeichenstiftmodus setzen
if (Show and not Grid) or (Show and Grid) then
begin
Page.Bitmap.Canvas.Pen.Mode := pmCopy;
end
else if (Grid and not Show) or (not Grid and not Show) then
begin
Page.Bitmap.Canvas.Pen.Mode := pmNotXor;
end;
with Page do
begin
Page.Bitmap.Canvas.Brush.Style := bsClear;
// Punkte zeichnen
for i := 0 to Width div FGridWidth do
begin
for j := 0 to Height div FGridWidth do
begin
Bitmap.Canvas.Pixels[i * FGridWidth, j * FGridWidth] := clBlack;
end;
end;
Update;
end;
// Penmode zurücksetzen
Page.Bitmap.Canvas.Pen.Mode := pmCopy;
Self.Grid := Show;
end;
Es gibt nur ein Problem: Wurde das Raster noch nicht gezeichnet (Grid = False) und soll auch nicht gezeichnet werden (Show = False), zeichnet der Code trotzdem das Raster.