Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Canvas ohne Rahmen
jackle32 - Fr 30.11.07 00:39
Titel: Canvas ohne Rahmen
Hallo,
ich benutze ein Canvas in einem Image, hab das jetzt so geschrieben,dass das Canvas nach und nach verschwindet und das Image darunter zu sehen ist. Das ganze ist ein runde Logo und daher benutze ich die Funktion "Pie" die direkt im Canvas enthalten ist. Das funktioniert auch schon super aber jetzt hab ich das Problem, dass ich zwar den eigentlichen "Kuchen" mit der Hintergrundfarbe füllen kann, ich aber trotzdem noch eine schwarze Linie außen rum hab. Das es so aussehen soll, dass das Image "einfach so erscheint" wäre es gut wenn man keine Begrenzunglinie sehen würde.
Daher meine Frage ob man da auch die Farbe ändern kann oder die Linine nicht mitzeichnen muss.
Hab dabei leider keine passende Stelle zum Umstellen gefunden. Hoffe von euch kann mir jemand helfen
Gruß Jack
Lannes - Fr 30.11.07 00:42
Hallo,
versuch es mal mit Canvas.Pen.Color :wink:
PeterPain - Fr 30.11.07 01:02
Lannes hat folgendes geschrieben: |
Hallo,
versuch es mal mit Canvas.Pen.Color :wink: |
bzw Canvas.Pen.Style := psClear; ;)
gruss
Lannes - Fr 30.11.07 01:08
Hallo,
ich hab auch noch was:
Canvas.Pen.Mode :wink:
jackle32 - Fr 30.11.07 09:51
Danke schon mal für die Antworten! Hat aber alles drei nichts genutzt. Ich weiß nicht wie ich es jetzt sagen soll aber es ist so wie es aussieht gar keine richtige Linie, zumindest sieht sie sehr komisch aus. Hab mal einen Screenshot davon gemacht vielleicht hat das Problem ja schon mal jemand gehabt.
Gruß Jack
Lannes - Fr 30.11.07 15:27
Hallo,
aus dem Bild allein kann man schwer erkennen was in Deinem Code geändert werden muss, damit der Rand nicht gezeichnet wird.
Etwas Code von Dir wäre hilfreich. :wink:
jackle32 - Fr 30.11.07 16:02
Hi,
ich glaube nicht, dass ein Fehler im Code liegt. Scheint ehr sowas wie irgendwo eine Defaulteinstellung zu sein.
Hier aber mal mein anzeige Programm
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure TForm1.Anzeige(Bild: TImage; Teilung: integer; var Teil: integer); var breite, hoehe,x,y: integer; begin Bild.Canvas.Brush.Color := clbtnface; bild.Canvas.FillRect(Bild.Canvas.ClipRect);
bild.Picture := Urbild.Picture; hoehe := Bild.Picture.Height; breite := Bild.Picture.Width;
self.Text(Teil/Teilung);
if (Teil < Teilung) then begin self.Koordinaten(Teilung, Teil, x, y); Bild.Canvas.Pie(0,0, breite,hoehe, (breite div 2),0,(breite div 2)+x,y+(hoehe div 2)); end else Teil := 0; end; |
Die verschiedenen Einstellungen für den Pen haben auch nix geholfen, kann da die Farben und Styles beliebig verändern und die Ausgabe bleibt immer die gleiche.
Gruß Jack
jackle32 - Fr 30.11.07 16:18
Hab jetzt in der Wiederherstellung des Bildes was geändert und auf einmal ging die Zuweisung der Styles und Farben
Find ich tierisch komisch ... :gruebel: :nixweiss:
Danke trotzdem für die Mühen
Gruß Jack
Biergeneral - Do 06.12.07 01:02
Ich kann dir sagen warum da ein Rahmen drum gemalt wird ;)
Bei Canvas.FillRect wird lediglich der Brush für die Zeichnung verwendet.
Nimmst du hingegen Canvas.Rectangle hast du eine Kombination aus Stift und Pinsel.
Der Stift ist dann verantwortlich für den Rahmen(Pen.Color, Pen.Mode, Pen.Style) und der Pinsel für die Füllung(Brush.Color, Brush.Style)
Wolltest du also ein Bild ohne Rahmen, wär das einfach
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Brush.Color := clBtnFace; Brush.Style := bsSolid; Pen.Color := Brush.Color; Pen.Style := pmCopy;
Canvas.Rectangle(Canvas.ClipRect); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!