Einzelnen Beitrag anzeigen

s-off
(Gast)

n/a Beiträge
 
#1

TCanvas.FloodFill funktioniert nicht, wie erwartet

  Alt 15. Nov 2007, 14:19
Hallo,

ich zeichne ein RoundRect; dieses wird sofort mit der in Brush.Color definierten Farbe ausgefüllt.
Anschließend möchte ich das RoundRect mit einer anderen Farbe ausfüllen; dazu benutze ich folgenden Code, der allerdings nicht funktioniert:
Delphi-Quellcode:
      //Normales RoundRect zeichnen (Hintergrundfarbe weiß)
      MyCanvas.Brush.Color := clWhite;
      MyCanvas.RoundRect(iX1, iY1, iX + iX2, iY + iY2, iRundung, iRundung);

      //Irgendwann später dann FloodFill mit rot drüber
      MyCanvas.Brush.Color := clRed;
      MyCanvas.FloodFill(iX1 + 1, iY1 + 1, MyCanvas.Pixels[iX1 + 1, iY1 + 1], fsSurface);
Hier wird ein Roundrect gezeichnet. Der Rahmen ist schwarz, die 'Füllung' weiß.
FloodFill soll dieses RoundRect nun rot ausfüllen. Der Punkt 'iX1 + 1, iY1 + 1' liegt definitiv innerhalb des RoundRect und hat die Farbe 'weiß'. Durch fsSurface sollte nun eigentlich solange in alle Richtungen mit rot gemalt werden, bis eine andere Farbe als 'weiß' 'im Wege' steht - es passiert aber nichts - der komplette Hintergrund des RoundRect bleibt weiß.

Was mache ich falsch?
  Mit Zitat antworten Zitat