From e9f492c0d938b501d608011a052abe264366d15b Mon Sep 17 00:00:00 2001 From: wp Date: Wed, 3 Oct 2018 13:12:40 +0000 Subject: [PATCH] TAChart: Extend TChartImageList to work for non-series icons also at designtime. git-svn-id: trunk@59242 - --- components/tachart/demo/imagelist/Main.lfm | 41 ++++++++++++---------- components/tachart/demo/imagelist/Main.pas | 12 ++----- components/tachart/tachartimagelist.pas | 15 +++++++- 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/components/tachart/demo/imagelist/Main.lfm b/components/tachart/demo/imagelist/Main.lfm index d509ad42f5..a44a07853a 100644 --- a/components/tachart/demo/imagelist/Main.lfm +++ b/components/tachart/demo/imagelist/Main.lfm @@ -1,16 +1,15 @@ object frmMain: TfrmMain Left = 261 - Height = 434 + Height = 459 Top = 153 Width = 484 Caption = 'frmMain' - ClientHeight = 434 + ClientHeight = 459 ClientWidth = 484 - OnCreate = FormCreate LCLVersion = '2.1.0.0' object Chart1: TChart Left = 0 - Height = 223 + Height = 217 Top = 38 Width = 484 AxisList = < @@ -21,6 +20,7 @@ object frmMain: TfrmMain Title.LabelBrush.Style = bsClear end item + Intervals.MaxLength = 80 Alignment = calBottom Marks.LabelBrush.Style = bsClear Minors = <> @@ -59,17 +59,16 @@ object frmMain: TfrmMain object ListView1: TListView Left = 0 Height = 150 - Top = 261 + Top = 286 Width = 484 Align = alBottom - Color = clBtnFace + Color = clWhite Columns = <> Items.LazData = { - 940000000400000000000000FFFFFFFFFFFFFFFF000000000F0000006C697374 - 76696577206974656D203001000000FFFFFFFFFFFFFFFF000000000F0000006C - 69737476696577206974656D203102000000FFFFFFFFFFFFFFFF000000000F00 - 00006C69737476696577206974656D203203000000FFFFFFFFFFFFFFFF000000 - 000F0000006C69737476696577206974656D2033 + 6C0000000400000000000000FFFFFFFFFFFFFFFF00000000050000004974656D + 3001000000FFFFFFFFFFFFFFFF00000000050000004974656D3102000000FFFF + FFFFFFFFFFFF00000000050000004974656D3203000000FFFFFFFFFFFFFFFF00 + 000000050000004974656D34 } SmallImages = ChartImageList TabOrder = 1 @@ -84,7 +83,7 @@ object frmMain: TfrmMain ButtonWidth = 23 Caption = 'ToolBar1' EdgeBorders = [ebBottom] - Images = ToolbarImages + Images = ChartImageList ShowCaptions = True TabOrder = 2 object tbAdd: TToolButton @@ -112,10 +111,20 @@ object frmMain: TfrmMain object StatusBar1: TStatusBar Left = 0 Height = 23 - Top = 411 + Top = 436 Width = 484 Panels = <> end + object Label1: TLabel + Left = 0 + Height = 15 + Top = 271 + Width = 484 + Align = alBottom + BorderSpacing.Top = 16 + Caption = 'This ImageList displays all images contained in the ChartImagelist:' + ParentColor = False + end object RandomChartSource1: TRandomChartSource PointsNumber = 10 RandSeed = 1965225964 @@ -131,12 +140,6 @@ object frmMain: TfrmMain OnPopulate = ChartImageListPopulate left = 192 top = 97 - Bitmap = { - } - end - object ToolbarImages: TImageList - left = 328 - top = 97 Bitmap = { 4C69020000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF diff --git a/components/tachart/demo/imagelist/Main.pas b/components/tachart/demo/imagelist/Main.pas index db8aa7e47e..bb9e9f3389 100644 --- a/components/tachart/demo/imagelist/Main.pas +++ b/components/tachart/demo/imagelist/Main.pas @@ -6,7 +6,7 @@ interface uses Classes, SysUtils, FileUtil, TAGraph, TAChartImageList, TASources, - TAFuncSeries, Forms, Controls, Graphics, Dialogs, ComCtrls; + TAFuncSeries, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls; type @@ -17,7 +17,7 @@ type Chart1FuncSeries1: TFuncSeries; Chart1FuncSeries2: TFuncSeries; ChartImageList: TChartImageList; - ToolbarImages: TImageList; + Label1: TLabel; ListView1: TListView; RandomChartSource1: TRandomChartSource; StatusBar1: TStatusBar; @@ -28,7 +28,6 @@ type procedure Chart1FuncSeries1Calculate(const AX: Double; out AY: Double); procedure Chart1FuncSeries2Calculate(const AX: Double; out AY: Double); procedure ChartImageListPopulate(Sender: TObject); - procedure FormCreate(Sender: TObject); procedure tbAddClick(Sender: TObject); procedure tbQuitClick(Sender: TObject); end; @@ -64,13 +63,6 @@ begin [Count, SeriesCount, FirstSeriesIndex]); end; -procedure TfrmMain.FormCreate(Sender: TObject); -begin - ChartImageList.Chart := nil; - ChartImageList.AddImages(ToolbarImages); - ChartImageList.Chart := Chart1; -end; - procedure TfrmMain.tbAddClick(Sender: TObject); var series: TLineSeries; diff --git a/components/tachart/tachartimagelist.pas b/components/tachart/tachartimagelist.pas index 96643f11c7..ff49d1de92 100644 --- a/components/tachart/tachartimagelist.pas +++ b/components/tachart/tachartimagelist.pas @@ -170,9 +170,14 @@ begin end; procedure TChartImageList.ReadData(AStream: TStream); +var + ch: TChart; begin - Unused(AStream); + ch := Chart; + Chart := nil; Clear; + inherited ReadData(AStream); + Chart := ch; end; // Notification procedure of the listener. Responds to chart broadcasts @@ -202,10 +207,18 @@ begin end; procedure TChartImageList.WriteData(AStream: TStream); +var + ch: TChart; begin + ch := Chart; + Chart := nil; + inherited WriteData(AStream); + Chart := ch;{ + // Don't write the series images to stream. // They will be recreated automatically when the chart is assigned on loading. Unused(AStream); + } end; end.