Benutzung von "FloodFill"

Rika

Grünschnabel
Ich möchte in Delphi, in einer PaintBox ein Dreieck zeichnen und ausfüllen.

Zum erstellen des Dreieckes verwende ich die Befehle movetto, um zu dem Ausgangspunkt zu kommen und 3 linneto's um das Dreieck zu erstellen. Der verwendeten PaintBox habe ich den Namen Bild gegeben.

Jetzt tritt folgendes Problem auf:
Ich möcht nun die Hintergrundfarbe diese Figunr (Dreieck) mit den Befehl FloodFill festlegen. Doch weiß ich nicht wie ich FloodFill richtig anwende.

Wenn ich den Befehl wie folgt eingebe,

procedure FloodFill(X, Y: Integer; Color: TColor; FillStyle: TFillStyle);
begin
bild.Canvas.FloodFill(20,30,clblack,fsBorder);
end;

kommt zwar keine Fehlermeldung aber gezeichnet wird trotzdem nichts- oder zumindestens wird für mich in der PaintBox nichts sichtbar.

Könnt ihr mir bitte erklären wie ich ein Dreieck ausfülle (Hintergrundfarbe festlegen). Brauche ich dafür den Befehl FloodFill oder gibt es noch eine einfachere Alternative.


Ps.: Wie würde das Zeichnen und Ausfüllen von einem Vieleck funktionieren?
 
Ich nehme mal an, du willst das Dreieck schwarz färben? ich selbst musste in der OH auch mehrmals lesen, bis ich dahinter gekommen bin:
Die Farbe, die man im Prozeduraufruf angibt, ist die Farbe, bis zu der gefüllt wird. Wenn der Umriss des Dreiecks also schwarz ist, muss da clblack stehen, wären die Striche claqua, entsprechend claqua. Die Farbe, in der gefüllt werden soll, kannst du unter canvas.brush.color einstellen. Ich habe es mit einem Image probiert, imho ist es standardmäßig die Hintergrundfarbe der entsprechenden Komponente.

Wie es ist, wenn die Fläche von mehreren Farben begrenzt ist, habe ich noch nicht probiert, werde mich aber mal dransetzen, interessiert mich jetzt irgendwie :)

Zum PS: Soweit ich weiß musst du sie mit Linetos-Befehlen zeichnen, oder du benutzt canvas.Polyline oder canvas.Polygon, das geht für alle Vielecke, also auch für Dreiecke. Könnte dir vielleicht auch ein Bisschen helfen. Schau am besten mal in der Hilfe nach, da findest du alles nötige. Ich bin nicht so der Zeichentyp, deshalb kenne ich mich auch nicht so aus mit Canvas.

Ich hoffe, ich konnte dir trotzdem weiterhelfen.

lg Hellie

Edit: :rolleyes: unter fssurface kannst du die Farbe angeben, die ersetzt werden soll. Dann ist es nur von der Farbe abhängig, nicht von den umliegenden. Das hab ich erst gar nicht gecheckt. Aber nach dem Probieren kann ich dir eigentlich nur canvas.polygon empfehlen. Mann, ich mach noch Ferien :-(
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück