Hallo.
So, falls es jemanden interessiert, hab mich jetzt mal weiter mit der Sache beschäftigt.
Und, siehe da, ich kann
GDI+ Funktionen in der Paint Methode von TMyImage (abgeleitet von TImage) aufrufen
Soweit, so gut, allerdings wird immer trotzdem das "normale" Image unter dem
GDI+ Image gezeichnet.
Durch das inherited, klar. Laß ich das aber weg, wird nichts mehr dargestellt
Hier muß es doch auch eine Lösung geben, oder?
Sorry, für die blöden Fragen, aber mit Komponentenentwicklung stehe ich auf Kriegsfuß
Delphi-Quellcode:
procedure TMyImage.Paint;
var
graphics : TGPGraphics;
Image: TGPImage;
begin
if UseGDIPlus then begin
graphics := TGPGraphics.Create(self.Picture.Bitmap.Canvas.Handle);
Image:= TGPImage.Create(self.PictureResource.Dateiname); // <- Picture Source ist eine Erweiterung
if self.AutoSize then begin
self.Width := Image.GetWidth;
self.Height := Image.GetHeight;
end;
try
graphics.SetSmoothingMode(Self.SmoothingMode);
graphics.SetInterpolationMode(self.InterpolationMode);
graphics.DrawImage(Image, 0,0,self.Picture.Width,self.Picture.height);
inherited;
finally
if assigned( Image)
then Image.Free;
if assigned( graphics)
then graphics.Free;
end;
end else
inherited;
end;
Gruß
Jörg