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