Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

Re: Linien mit Hintergrundfarbe überzeichnen

  Alt 22. Mai 2007, 15:54
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" ?
  Mit Zitat antworten Zitat