Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi canvas (https://www.delphipraxis.net/9563-canvas.html)

LoL 29. Sep 2003 12:18


canvas
 
hi

kann man mit canvas einen bestimmten bereich ausmalen?
z.b. erst ein rechteck zeichnen und das dann ausmalen?

Sanchez 29. Sep 2003 12:19

Re: canvas
 
Ein Rechteck kannst du ganz einfach mit
Delphi-Quellcode:
canvas.FillRect(TRect);
füllen. Das musst du vorher nicht zeichnen.

Einen Bereich mit Floodfill

LoL 29. Sep 2003 12:21

Re: canvas
 
hab ich probiert und zwar so:

Delphi-Quellcode:
canvas.brush.color := clblack;
canvas.FillRect(Rect(10,10,100,100));
geht aber irgendwie nicht

LoL 29. Sep 2003 12:23

Re: canvas
 
doch jetzt funzt es! :hello:

kann ich auch z.b. ein dreieck zeichen und ausmalen?

Sanchez 29. Sep 2003 12:29

Re: canvas
 
Bei einem Dreieck fällt mir nix anderes ein als zuerst das Dreieck zeichnen und anschliessend
Delphi-Quellcode:
  canvas.FloodFill(x , y {Punkt im Dreieck}, Dreieckfarbe, fsborder);
Eventuell gibts da noch eine bessere Möglichkeit, aber das sollte funktionieren

Mirilin 29. Sep 2003 12:44

Re: canvas
 
:hi:

Delphi-Quellcode:
var
  P : array [0..2] of TPoint;
begin
  Canvas.Brush.Color := clred;
  Canvas.Pen.Width  := 2;
  Canvas.Pen.Color  := clBlack;
  P[0] := Point(300,20);
  P[1] := Point(10,300);
  P[2] := Point(590,300);
  Canvas.Polygon(P);
end;

Delphi-Hilfe :
Zitat:

Die Methode Polygon zeichnet eine Reihe von Linien auf der Zeichenfläche, die die als Parameter übergebenen Punkte der Reihe nach verbinden. Eine Linie vom letzten zum ersten Punkt schließt den Umriß.

procedure Polygon(Points: array ofTPoint);

Beschreibung

Mit dieser Methode könne Sie unter Verwendung des aktuellen Stifts eine in sich geschlossene, vieleckige Form zeichnen. Die Form wird mit dem aktuellen Pinsel gefüllt.

Der Parameter Points ist ein Array mit den Scheitelpunkten des Polygons.

Sanchez 29. Sep 2003 12:52

Re: canvas
 
Toll, gefällt mir besser als Floodfill
:dancer:

LoL 29. Sep 2003 13:08

Re: canvas
 
noch ne allgemeine frage: ein panel hat kein canvas oder?

Sanchez 29. Sep 2003 13:18

Re: canvas
 
Nein, du kannst dir aber einen Canvas erzeugen:

Delphi-Quellcode:
var Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetDC(Panel1.Handle);

    // hier hast du die Canvas

  finally
    ReleaseDC(Panel1.Handle, Canvas.Handle);
    Canvas.Handle := 0;
    Canvas.Free;
  end;
end;

LoL 29. Sep 2003 13:19

Re: canvas
 
thx hat gefunzt :hello: :hello: :hello:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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