Einzelnen Beitrag anzeigen

Benutzerbild von PAX
PAX

Registriert seit: 22. Jun 2003
Ort: Karlsruhe
88 Beiträge
 
Delphi 7 Personal
 
#1

weißer Rand um mit Canvas auf Image gezeichneten Rechteck

  Alt 3. Mai 2006, 11:18
Hallo Delphi-Fanz!

Ich bin dabei, mit Canvas auf ein transparentes TImage zu malen (kein Bild geladen). Das besondere hierbei ist, dass ich in einem bestimmten Zeitintervall die Größe des TImage ändere (wird größer) und die gezeichnete Figur wieder lösche, bzw. neu + größer zeichne. Ich zeichne mit schwarzer Farbe ein Rechteck, wobei der Rest des TImage transparent bleiben soll. Wird das Rechteck nicht exakt am Rand des TImage erstellt, sondern 1/mehr Pixel dazwischen frei ist/sind, so ist allein der Inhalt zwischen dem schwarzen Rechteckrand und dem Rand des TImage weiß. Der Innenraum des Vierecks bleibt dabei widerum transparent. Male ich nun die Figur genau am Rand (also in der Größe des TImage, so ist das gesamte TImage weiß (der schwarze Rechteckrand ist kurioserweise weg). Wenn ich den Brush-Style auf bsClear setze, so ist nix mehr transparent...

Hier mal der Code:
Delphi-Quellcode:
If Image5.Left > 32 Then begin
    If Image5.Width < 233 Then Image5.Width := Image5.Width + 3;
    If Image5.Height < 81 Then Image5.Height := Image5.Height + 1;
    Image5.Left := Image5.Left - 1;
    Image5.Top := Image5.Top - 1;
  end;

  Image5.Picture := nil;
  Image5.Canvas.Rectangle(0,0,Image5.Width,Image5.Height);
  Image5.Canvas.Refresh;
Hier in diesem Beispiel müsste das Rechteck eigentlich genau so groß sein, wie sein TImage, aber wie gesagt, ist alles weiß.

Weiß jemand, was los ist?

Vielen Dank, Kollegen!

Einen schönen sonnigen Tag noch!

Viva los tioz!



PAX
Andreas
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner

  Mit Zitat antworten Zitat