Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Probleme mit FloodFill (https://www.delphipraxis.net/60781-probleme-mit-floodfill.html)

benst 12. Jan 2006 09:25


Probleme mit FloodFill
 
Hi ihr,
bei mir funktioniert FloodFill irgendwie nicht... :wall:
Ich habe ein Image in das ich male. Jetzt möchte ich Teile mit einer Farbe ausmalen. Doch der Befehl
Delphi-Quellcode:
Image.Canvas.FloodFill(10,10,clBlack,fsBorder);
zeigt keine Auswirkungen (auch mit anderen Farben und fsSurface anstatt fsBorder).
Woran kann das liegen.
Gruß
Ben

xaromz 12. Jan 2006 10:00

Re: Probleme mit FloodFill
 
Hallo,

aus Deinem Post schließe ich, dass Du auf ein TImage zeichnest. Ein TImage ist eigentlich nur ein Container für ein Bildobjekt. Veruche doch mal, auf das (vermutlich) verwendete Bitmap zu zeichnen:
Delphi-Quellcode:
Image.Picture.Bitmap.Canvas.FloodFill(10,10,clBlack,fsBorder);
Image.Update; // Damit die Änderungen auch angezeigt werden
Gruß
xaromz

benst 12. Jan 2006 22:44

Re: Probleme mit FloodFill
 
(Ja genau TImage.)
Danke,
aber der Zusatz "Picture.Bitmap." ändert leider nichts. Aber es hätte auch ohne gehen müssen (denke ich), da ich ja auch über Image.Canvas.LineTo(...) zeichnen kann.
Hat noch jemand eine Idee? :gruebel:
Gruß
Ben

Matze 12. Jan 2006 23:01

Re: Probleme mit FloodFill
 
Hallo,

das geht bei mir ohne Probleme:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Canvas.Brush.Color := clLime;
  Image1.Canvas.FloodFill(10, 10, clBlack, fsBorder);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.Canvas.Brush.Color := clNavy;
  Image1.Canvas.Pen.Color := clBlack;

  Image1.Canvas.Rectangle(5, 5, 100, 100);
end;
Der 3. Parameter gibt die Begranzungsfarbe an und zuvor musst du über Brush.Color die Füllfarbe festlegen.

benst 13. Jan 2006 14:28

Re: Probleme mit FloodFill
 
aaahhhh :coder2:
man sollte die Delphi-Hilfe etwas genauer lesen...
Dachte Color wäre die Füllfarbe, aber es ist die Begrenzungsfarbe:
Delphi-Quellcode:
procedure FloodFill(X, Y: Integer; Color: TColor; FillStyle: TFillStyle);
Jetzt funktioniert es:
Delphi-Quellcode:
Image.Canvas.Brush.Color:=FuellFarbe;
Image.Canvas.FloodFill(x,y,Pixels[x,y],fsSurface);
Danke
Ben


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