Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fläche mit Farbe ausfüllen (https://www.delphipraxis.net/103769-flaeche-mit-farbe-ausfuellen.html)

HTML04 21. Nov 2007 14:49


Fläche mit Farbe ausfüllen
 
Ich möchte eine mit Canvas gezeichnete Fläche, die mit unterschiedlichen Linien begrenzt ist mit einer Farbe ausfüllen.
Ich habe brush versucht aber ohne feste Form geht es dabei nicht. Bei Floodfill tut sich bei mir rein gar nichts. Wie geht es sonst? Und wenn es mit Floodfill geht, wie??? :gruebel:

Progman 21. Nov 2007 14:54

Re: Fläche mit Farbe ausfüllen
 
Delphi-Quellcode:
  Canvas.FloodFill(x,y,istColor,fsSurface);
Wobei x und y den Punkt beschreiben, von dem aus gefüllt werden soll, istColor (Typ TColor) enthält die Farbe der Fläche, die gefüllt werden soll. Gefüllt wird mit der Farbe, die in Canvas.Brush.Color festgelegt wird.

HTML04 21. Nov 2007 15:29

Re: Fläche mit Farbe ausfüllen
 
Doch aus irgendeinem Grund klappt dieses einfach nicht bei mir?????? :(

Progman 21. Nov 2007 15:41

Re: Fläche mit Farbe ausfüllen
 
hier komplette Unit, die Form.Canvas füllt:
Delphi-Quellcode:
unit testUnit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XiButton;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    //
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var x, y: Integer;
begin
  Canvas.Brush.Color:=clYellow;
  X:=30; y:=30;
  Canvas.FloodFill(x,y,Canvas.Pixels[x,y],fsSurface);
end;

end.
Bei mir funzt das, und das müsste auf jedem Canvas gehen.

HTML04 21. Nov 2007 15:48

Re: Fläche mit Farbe ausfüllen
 
Bei mir funktioniert es nun auch. Gibt es auch eine die Bei der Grenze aufhört auszfüllen und nicht über die Grenze die Fläche befüllt, denn wenn man mehrere Flächen mit einer Farbe hat füllt diese methode alles?

Progman 21. Nov 2007 15:50

Re: Fläche mit Farbe ausfüllen
 
Die Flächen müssen schon getrennt sein, mind. durch eine 1px breite Linie, oder man gibt jeder Fläche ne etwas andere Farbe.

HTML04 21. Nov 2007 21:22

Re: Fläche mit Farbe ausfüllen
 
ich werd ma' schaun ob ichs hinbekomme ...
Trotzdem danke für deine Mühe :P

Deep-Sea 22. Nov 2007 07:36

Re: Fläche mit Farbe ausfüllen
 
Zitat:

Zitat von HTML04
Gibt es auch eine die Bei der Grenze aufhört auszfüllen und nicht über die Grenze die Fläche befüllt, denn wenn man mehrere Flächen mit einer Farbe hat füllt diese methode alles?

Wie wäre es da mit TCanvas.FillRect ?! ...
Bzw.: Was ist bei dir "die Grenze der Fläche"?

HTML04 22. Nov 2007 15:35

Re: Fläche mit Farbe ausfüllen
 
ist leider keine rechteckige fläche


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