AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

canvas

Ein Thema von LoL · begonnen am 29. Sep 2003 · letzter Beitrag vom 29. Sep 2003
Antwort Antwort
LoL
(Gast)

n/a Beiträge
 
#1

canvas

  Alt 29. Sep 2003, 12:18
hi

kann man mit canvas einen bestimmten bereich ausmalen?
z.b. erst ein rechteck zeichnen und das dann ausmalen?
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#2

Re: canvas

  Alt 29. Sep 2003, 12:19
Ein Rechteck kannst du ganz einfach mit
canvas.FillRect(TRect); füllen. Das musst du vorher nicht zeichnen.

Einen Bereich mit Floodfill
Daniel
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#3

Re: canvas

  Alt 29. Sep 2003, 12:21
hab ich probiert und zwar so:

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

n/a Beiträge
 
#4

Re: canvas

  Alt 29. Sep 2003, 12:23
doch jetzt funzt es!

kann ich auch z.b. ein dreieck zeichen und ausmalen?
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#5

Re: canvas

  Alt 29. Sep 2003, 12:29
Bei einem Dreieck fällt mir nix anderes ein als zuerst das Dreieck zeichnen und anschliessend
  canvas.FloodFill(x , y {Punkt im Dreieck}, Dreieckfarbe, fsborder); Eventuell gibts da noch eine bessere Möglichkeit, aber das sollte funktionieren
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#6

Re: canvas

  Alt 29. Sep 2003, 12:44


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.
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#7

Re: canvas

  Alt 29. Sep 2003, 12:52
Toll, gefällt mir besser als Floodfill
Daniel
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#8

Re: canvas

  Alt 29. Sep 2003, 13:08
noch ne allgemeine frage: ein panel hat kein canvas oder?
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#9

Re: canvas

  Alt 29. Sep 2003, 13:18
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;
Daniel
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#10

Re: canvas

  Alt 29. Sep 2003, 13:19
thx hat gefunzt
  Mit Zitat antworten Zitat
Antwort Antwort


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:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz