AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Andorra 2d Canvas.Brush.Color

Andorra 2d Canvas.Brush.Color

Ein Thema von Noobmaster · begonnen am 24. Mai 2011 · letzter Beitrag vom 24. Mai 2011
Antwort Antwort
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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.858 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Andorra 2d Canvas.Brush.Color

  Alt 24. Mai 2011, 15:54
Farbe setzen alleine reicht nicht, Du musst schon noch zeichnen (Canvas.FillRect).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Noobmaster

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

AW: Andorra 2d Canvas.Brush.Color

  Alt 24. Mai 2011, 15:56
Die Prozedur gibt es bei Andorra aber nicht... und im Tutorial scheint der Aufruf einer solchen auch nicht notwendig.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.858 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Andorra 2d Canvas.Brush.Color

  Alt 24. Mai 2011, 15:57
Dann nehme ich alles zurück, da ich das "Andorra" schlicht überlesen hatte.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Andorra 2d Canvas.Brush.Color

  Alt 24. Mai 2011, 16:31
Ich denke das Problem ist, dass du die Blöcke "falsch herum" zeichnest, d.h. bei der letzten y-Koordinate ziehst du die Breite ab. Hierdurch culltdie Grafikkarte die Vertices des Rechtecks weg.

Als Lösung kannst du entweder die Rechtecke "richtig herum" zeichnen oder das Culling ausschalten (über die TAdDraw.Options, siehe http://andorracommons.sourceforge.ne...es.TAd2dOption)
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Noobmaster

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

AW: Andorra 2d Canvas.Brush.Color

  Alt 24. Mai 2011, 16:41
Danke, wie immer die richtige Antwort
An sowas denkt man als Hobbyprogrammierer aber auch nicht xD
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf