Autor Beitrag
jackle32
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: Fr 30.11.07 00:39 
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

_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 30.11.07 00:42 
Hallo,

versuch es mal mit Canvas.Pen.Color :wink:

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
PeterPain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: Fr 30.11.07 01:02 
user profile iconLannes hat folgendes geschrieben:
Hallo,

versuch es mal mit Canvas.Pen.Color :wink:



bzw Canvas.Pen.Style := psClear; ;)


gruss
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 30.11.07 01:08 
Hallo,

ich hab auch noch was:
Canvas.Pen.Mode :wink:

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
jackle32 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: 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
Einloggen, um Attachments anzusehen!
_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: 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:

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
jackle32 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: 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
ausblenden 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.Canvas.Pen.Mode := pmCopy;
  //bild.Canvas.Pen.Style := psSolid;
  //bild.Canvas.Pen.Color := clred;

  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

_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
jackle32 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: 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

_________________
Es gibt keine dummen Fragen, nur dumme Antworten.
Biergeneral
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35

WIN XP
Delphi 7 Ent., Delphi 2007 Ent., C/C++ (Eclipse)
BeitragVerfasst: 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

ausblenden 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);