Thank you very much. I need a background image, therefore as soon as I am back at the office I'll try your code. Thank you again!
R# 2014-09-02 18:18 GMT+02:00 Werner Pamler <werner.pam...@freenet.de>: > It is not fully clear to me what you mean by "a chart with transparent > background". Do you want to see the form underneath the chart? I fear this > is not easily possible. Or do you want to have a background image in the > chart? For the latter case this code is working fine with me: > > type > TForm1 = class(TForm) > Chart1: TChart; > procedure Chart1BeforeDrawBackground(ASender: TChart; ACanvas: > TCanvas; > const ARect: TRect; var ADoDefaultDrawing: Boolean); > procedure Chart1BeforeDrawBackWall(ASender: TChart; ACanvas: TCanvas; > const ARect: TRect; var ADoDefaultDrawing: Boolean); > procedure FormCreate(Sender: TObject); > procedure FormDestroy(Sender: TObject); > private > { private declarations } > FBackImage: TPicture; > public > { public declarations } > end; > .... > procedure TForm1.Chart1BeforeDrawBackWall(ASender: TChart; ACanvas: > TCanvas; > const ARect: TRect; var ADoDefaultDrawing: Boolean); > begin > ADoDefaultDrawing := false; > ACanvas.StretchDraw(ARect, FBackImage.Graphic); > end; > > procedure TForm1.Chart1BeforeDrawBackground(ASender: TChart; ACanvas: > TCanvas; > const ARect: TRect; var ADoDefaultDrawing: Boolean); > begin > ACanvas.GradientFill(ARect, clSkyBlue, clWhite, gdVertical); > ADoDefaultDrawing := false; > end; > > procedure TForm1.FormCreate(Sender: TObject); > begin > FBackImage := TPicture.Create; > FBackImage.LoadFromFile('C:\lazarus-svn\images\splash_logo.png'); > // please adapt this path to your lazarus installation > end; > > procedure TForm1.FormDestroy(Sender: TObject); > begin > FBackImage.Free; > end; > > The basic idea is to assign a handler to the chart events > OnBeforeDrawBackWall or OnBeforeDrawBackground and disable the default > background painting by setting ADoDefaultDrawing to false. The first event > replaces painting of the area enclosed by the chart's frame ("Back wall"), > the other one replaces painting of the entire chart background. Above > example paints the Lazarus splash-logo as BackWall and a gradient as > background. > > Maybe I'll once write a tutorial on this topic... > > > -- > _______________________________________________ > Lazarus mailing list > Lazarus@lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus >
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus