![]() |
TCanvas.RoundRect nur teilweise farbig ausfüllen
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo zusammen,
ich habe das Ziel, Grafiken im Stil der angehängten Screenshots zu zeichnen. Beispiel 1: kein Problem - Brush.Color auf den Blauton setzen und ein RoundRect zeichnen. Das Ausfüllen erfolgt automatisch. Hinterher noch mit LineTo die Linien drüber und gut ist.
Delphi-Quellcode:
Beispiel 2:
MyCanvas.Brush.Color := clBlue;
MyCanvas.RoundRect(iX1, iY1, iX1 + iX2, iY + iY2, iRundung, iRundung); Kriege ich gerade noch so hin, obwohl der Weg ziemlich umständlich ist
Delphi-Quellcode:
Habe es auch mit FloodFill versucht, das haut aber irgendwie überhaupt nicht hin :(
//ausgefülltes RoundRect oben zeichnen und Höhe um die Länge der Rundung erhöhen
MyCanvas.Pen.Color := StringToColor(sRahmenfarbe); MyCanvas.Brush.Color := StringToColor(sHintergrundfarbe); MyCanvas.RoundRect(iX1, iY1, iX1 + iX2, iY1 + iHöheFarbe + iRundung, iRounding, iRounding); //Rechteck drübermalen, um innere Rundungen zu vermeiden MyCanvas.Brush.Color := clNone; MyCanvas.FillRect(Rect(iX1, iY1 + iHöheFarbe, iX1 + iX2, iY + iHöheFarbe + iRundung)); //unausgefülltes RoundRect zeichnen, um den Rahmen zu bekommen MyCanvas.Brush.Color := clWhite; MyCanvas.RoundRect(iX1, iY1, iX1 + iX2, iY + iY2, iRundung, iRundung); Bei Beispiel 3 habe ich gar keinen Ahnung :( Also, zu 1 - sollte klar sein. zu 2 - unschön - müsste doch auch besser gehen, oder? zu 3 - geht soetwas überhaupt, ohne große Umstände? Und wenn ja - wie? Edit: musste noch die Linien in die Bilder einfügen |
Re: TCanvas.RoundRect nur teilweise farbig ausfüllen
Hallo.
Ich weiß nicht, ob ich dein Problem richtig verstanden habe, aber eventuell wäre es einfacher, mit Create...Region und SelectObject dem Canvas eine Art Maske zuzuweisen, und auf der zu Zeichnen. |
Re: TCanvas.RoundRect nur teilweise farbig ausfüllen
Da smit den Regions schaue ich mir mal an.
Aber es müsste doch auch mit FloodFill gehen, oder? Habe dazu mal einen separaten Thread aufgemacht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz