![]() |
Rectangle mit schleife
Hallo, ich hab wieder ein Problem:
Delphi-Quellcode:
dieser code SOLLTE mir eigentlich 3 Quadrate mit versch. größen "malen"...
with image1.canvas do
begin a := 80; c := 160; e := -1; for f := 1 to 3 do begin e := e + 1; a := a - (e*40); c := c + (e*40); b := a; d := c; image1.Canvas.Rectangle(a+90,b+90, c+90,d+90) ; end; end; Macht er aber nicht - er zeichenet nur das letzte mit den werten a := -40 und c:= 280... Woran liegts??? |
Re: Rectangle mit schleife
Delphi-Quellcode:
Rectangle zeichnet immer mit dem akt. Pen-Color den Ramen und mit dem Brush.Color wird es dann ausgefüllt.
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,... integer; begin with image1.canvas do begin // image1.Canvas.Brush.Style := bsClear; // <----<<< // da aber With Image1.Canvas vorangestellt ist reicht: Brush.Style := bsClear; a := 80; c := 160; e := -1; for f := 1 to 3 do begin e := e + 1; a := a - (e*40); c := c + (e*40); b := a; d := c; Rectangle(a+90,b+90, c+90,d+90) ; end; end; end; Will man den innenbereich nicht ausfüllen setzt man den Style des Brusches auf bsClear [oh]Brush.Style, Pen.Style, Rectangle[/oh] |
Re: Rectangle mit schleife
und was sollte das bringen? geht trotzdem net...
|
Re: Rectangle mit schleife
:wiejetzt: ...extra Delphi angeworfen, Bild !
[edit=tP]Bildchen gelöscht[/edit] |
Re: Rectangle mit schleife
bei mir eben net!
EDIT: Elendiger Computer! Jetzt gehtz :wall: |
Re: Rectangle mit schleife
Wollt gerade fragen:
Hast vorher noch was gezeichnet und das Pen.Color und Brush.Color steht noch auf weiss ? ;) |
Re: Rectangle mit schleife
so leute, die letzte frage für heute ^^
Delphi-Quellcode:
das ist jetzt der endcode...es werden polygonne und quadrate inneinander erzeugt. die linien sind aber nicht 100% aufeinander...woran kann das liegen?
var a,b,c,d,e,f: integer;
begin with image1.canvas do begin Brush.Style := bsClear; a := 80; c := 160; e := -1; for f := 1 to 3 do begin e := e + 1; a := a - (e*40); c := c + (e*40); b := a; d := c; Rectangle(a+90,b+90, c+90,d+90) ; image1.Canvas.Polyline([Point(120+90, a+90), Point(c+90, 120+90), Point(120+90,c+90), Point(a+90,120+90),Point(120+90,a+90)]); end; end; end; |
Re: Rectangle mit schleife
Zitat:
Polygonlinien dann eventuell eins breiter zeichnen. |
Re: Rectangle mit schleife
und schon wieder ne frage:
Delphi-Quellcode:
var
F: array[1..5] of tcolor; i :integer ; begin f[1] := clblue; f[2] := clred; f[3] := clblack; f[4] := clwhite; f[5] := clyellow; with Image1.Canvas do begin for i := 0 to 20 do begin Randomize; brush.color := f[Random(5)+1]; //diese Zeile muss wahrscheinlich anders sein... Polygon([Point(0, 200), Point(200, 200), Point(100, i*15)]); end; end; diesen code habe ich jetzt programmiert...es werden mehrere dreiecke inneinander erzeugt und das ganze ding wird dann mit einer zufallsfarbe gefüllt. Wie mache ich es jetzt aber, dass nicht die ganze figur, sondern nur ein bestimmtes dreieck mit der zufallsfarbe gefüllt wird. Auf deutsch: jedes Dreieck soll eine andere Farbe haben... |
Re: Rectangle mit schleife
Eine Farbe besteht aus rot,grün und blau. Wenn du nur Graustufen willst würde das so aussehen eine Zufallsfarbe zu erzeugen. Desweiteren sollte man Randomize nur ein einziges mal im Programm aufrufen.
Delphi-Quellcode:
Da das ganze mit den Dreiecken aber eine neue Frage ist und die ursprüngliche Frage beantwortet ist mach ich hier mal zu. Neue Frage -> Neuer Thread
var LFarbwert: Byte;
begin Randomize; [...] LFarbwert := Random(256) - 1; brush.color := RGB(LFarbwert, LFarbwert, LFarbwert); *** LOCKED *** |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz