Einzelnen Beitrag anzeigen

Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#1

Andorra 2d Canvas.Brush.Color

  Alt 24. Mai 2011, 15:51
Hallo!

Das Programm soll verschiedene Rechtecke zeichnen. Momentan nur graue "Blöcke", deren Farbe ich schon auf grau gesetzt habe.

Delphi-Quellcode:
 
procedure ZeichneLevel(var Zeichenflaeche : TAddraw; Verschiebung : Integer);
var Rechteck : TRechteck;
begin
     for i := Low(Block) to High(Block) do
     begin
          if Block[i] <> nil then
          begin
               Block[i].SetzePos(Block[i].x + Verschiebung,Block[i].y);

               //Blockzeichnung vorbereiten:
               with Zeichenflaeche.Canvas do
               begin
                    Pen.Color.a := Block[i].Farbe.a;
                    Pen.Color.b := Block[i].Farbe.b;
                    Pen.Color.g := Block[i].Farbe.g;
                    Pen.Color.r := Block[i].Farbe.r;
                    Brush.Color := Pen.Color;
               end;

               //Blöcke zeichnen:
               if Block[i] is TRechteck then
               begin
                    Rechteck := TRechteck(Block[i]);
                    Zeichenflaeche.Canvas.Rectangle(Rechteck.x,Rechteck.y,Rechteck.x+Rechteck.a,Rechteck.y-Rechteck.b);
               end;

               //Ohne diese Zeile wird nichts gezeichnet:
               Zeichenflaeche.Canvas.Release();
          end;
     end;
end;
Die Prozedur wird noch mit Verschiebung = 0 ausgeführt.
Das Programm zeichnet aber nur grau umrandete Rechtecke, es sollen aber auch grau ausgefüllte sein. Liegt das an der Brush.Color oder muss ich sonst noch was beachten?
Warum funktioniert aber die Zuweisung der Pen.Color?

Danke schonmal für die Hilfe!
  Mit Zitat antworten Zitat