Erstmal: die if Anweisung geht auch einfacher
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 then
begin
Page.Bitmap.Canvas.Pen.Mode := pmCopy;
end
else
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;
Und zu deinem Problem: Warum packst du nicht alles nochmal in eine if-Anweisung à la "if Show or Grid then" ?