mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 02:42:33 +01:00 
			
		
		
		
	TAChart: Update financial demo
git-svn-id: trunk@53935 -
This commit is contained in:
		
							parent
							
								
									12987e232a
								
							
						
					
					
						commit
						5e8135f59a
					
				| @ -1,7 +1,7 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <CONFIG> | <CONFIG> | ||||||
|   <ProjectOptions> |   <ProjectOptions> | ||||||
|     <Version Value="9"/> |     <Version Value="10"/> | ||||||
|     <PathDelim Value="\"/> |     <PathDelim Value="\"/> | ||||||
|     <General> |     <General> | ||||||
|       <SessionStorage Value="InProjectDir"/> |       <SessionStorage Value="InProjectDir"/> | ||||||
| @ -13,9 +13,6 @@ | |||||||
|     <i18n> |     <i18n> | ||||||
|       <EnableI18N LFM="False"/> |       <EnableI18N LFM="False"/> | ||||||
|     </i18n> |     </i18n> | ||||||
|     <VersionInfo> |  | ||||||
|       <StringTable ProductVersion=""/> |  | ||||||
|     </VersionInfo> |  | ||||||
|     <BuildModes Count="1"> |     <BuildModes Count="1"> | ||||||
|       <Item1 Name="Default" Default="True"/> |       <Item1 Name="Default" Default="True"/> | ||||||
|     </BuildModes> |     </BuildModes> | ||||||
| @ -46,7 +43,6 @@ | |||||||
|         <ComponentName Value="MainForm"/> |         <ComponentName Value="MainForm"/> | ||||||
|         <HasResources Value="True"/> |         <HasResources Value="True"/> | ||||||
|         <ResourceBaseClass Value="Form"/> |         <ResourceBaseClass Value="Form"/> | ||||||
|         <UnitName Value="main"/> |  | ||||||
|       </Unit1> |       </Unit1> | ||||||
|       <Unit2> |       <Unit2> | ||||||
|         <Filename Value="data.txt"/> |         <Filename Value="data.txt"/> | ||||||
|  | |||||||
| @ -7,7 +7,7 @@ object MainForm: TMainForm | |||||||
|   ClientHeight = 466 |   ClientHeight = 466 | ||||||
|   ClientWidth = 891 |   ClientWidth = 891 | ||||||
|   OnCreate = FormCreate |   OnCreate = FormCreate | ||||||
|   LCLVersion = '1.3' |   LCLVersion = '1.7' | ||||||
|   object FinancialChart: TChart |   object FinancialChart: TChart | ||||||
|     Left = 0 |     Left = 0 | ||||||
|     Height = 382 |     Height = 382 | ||||||
| @ -45,7 +45,6 @@ object MainForm: TMainForm | |||||||
|     ) |     ) | ||||||
|     Toolset = ChartToolset1 |     Toolset = ChartToolset1 | ||||||
|     Align = alClient |     Align = alClient | ||||||
|     ParentColor = False |  | ||||||
|     object ohlcSeries: TOpenHighLowCloseSeries |     object ohlcSeries: TOpenHighLowCloseSeries | ||||||
|       CandlestickDownBrush.Color = clRed |       CandlestickDownBrush.Color = clRed | ||||||
|       CandlestickLinePen.Color = clDefault |       CandlestickLinePen.Color = clDefault | ||||||
| @ -64,8 +63,20 @@ object MainForm: TMainForm | |||||||
|     Width = 891 |     Width = 891 | ||||||
|     Align = alBottom |     Align = alBottom | ||||||
|     BevelOuter = bvNone |     BevelOuter = bvNone | ||||||
|     Caption = 'Hold the left mouse button down to see a hint window with the stock prices above each data point.' |     ClientHeight = 42 | ||||||
|  |     ClientWidth = 891 | ||||||
|     TabOrder = 1 |     TabOrder = 1 | ||||||
|  |     object Label1: TLabel | ||||||
|  |       Left = 0 | ||||||
|  |       Height = 42 | ||||||
|  |       Top = 0 | ||||||
|  |       Width = 891 | ||||||
|  |       Align = alClient | ||||||
|  |       Alignment = taCenter | ||||||
|  |       Caption = 'Hold down the left mouse button to see a hint window with the open/high/low/close stock prices above each data point.'#13#10'Hold down the left mouse button - together with CTRL - to see a hint window with the clicked stock price above each data point.' | ||||||
|  |       Layout = tlCenter | ||||||
|  |       ParentColor = False | ||||||
|  |     end | ||||||
|   end |   end | ||||||
|   object TopPanel: TPanel |   object TopPanel: TPanel | ||||||
|     Left = 0 |     Left = 0 | ||||||
| @ -79,10 +90,10 @@ object MainForm: TMainForm | |||||||
|     TabOrder = 2 |     TabOrder = 2 | ||||||
|     object cbSeriesType: TComboBox |     object cbSeriesType: TComboBox | ||||||
|       Left = 8 |       Left = 8 | ||||||
|       Height = 28 |       Height = 23 | ||||||
|       Top = 8 |       Top = 8 | ||||||
|       Width = 242 |       Width = 242 | ||||||
|       ItemHeight = 20 |       ItemHeight = 15 | ||||||
|       ItemIndex = 0 |       ItemIndex = 0 | ||||||
|       Items.Strings = ( |       Items.Strings = ( | ||||||
|         'OHLC series' |         'OHLC series' | ||||||
| @ -95,9 +106,9 @@ object MainForm: TMainForm | |||||||
|     end |     end | ||||||
|     object cbCandleStickSameColor: TCheckBox |     object cbCandleStickSameColor: TCheckBox | ||||||
|       Left = 600 |       Left = 600 | ||||||
|       Height = 24 |       Height = 19 | ||||||
|       Top = 10 |       Top = 10 | ||||||
|       Width = 218 |       Width = 173 | ||||||
|       Caption = 'same color for tails and body' |       Caption = 'same color for tails and body' | ||||||
|       Checked = True |       Checked = True | ||||||
|       OnChange = cbCandleStickSameColorChange |       OnChange = cbCandleStickSameColorChange | ||||||
| @ -118,7 +129,7 @@ object MainForm: TMainForm | |||||||
|     end |     end | ||||||
|     object cbDownColor: TColorBox |     object cbDownColor: TColorBox | ||||||
|       Left = 464 |       Left = 464 | ||||||
|       Height = 28 |       Height = 26 | ||||||
|       Top = 8 |       Top = 8 | ||||||
|       Width = 100 |       Width = 100 | ||||||
|       Selected = clRed |       Selected = clRed | ||||||
| @ -129,18 +140,18 @@ object MainForm: TMainForm | |||||||
|     end |     end | ||||||
|     object LblUp: TLabel |     object LblUp: TLabel | ||||||
|       Left = 264 |       Left = 264 | ||||||
|       Height = 20 |       Height = 15 | ||||||
|       Top = 12 |       Top = 12 | ||||||
|       Width = 19 |       Width = 15 | ||||||
|       Caption = 'Up' |       Caption = 'Up' | ||||||
|       FocusControl = cbUpColor |       FocusControl = cbUpColor | ||||||
|       ParentColor = False |       ParentColor = False | ||||||
|     end |     end | ||||||
|     object LblDown: TLabel |     object LblDown: TLabel | ||||||
|       Left = 413 |       Left = 413 | ||||||
|       Height = 20 |       Height = 15 | ||||||
|       Top = 12 |       Top = 12 | ||||||
|       Width = 39 |       Width = 31 | ||||||
|       Caption = 'Down' |       Caption = 'Down' | ||||||
|       FocusControl = cbDownColor |       FocusControl = cbDownColor | ||||||
|       ParentColor = False |       ParentColor = False | ||||||
| @ -149,11 +160,17 @@ object MainForm: TMainForm | |||||||
|   object ChartToolset1: TChartToolset |   object ChartToolset1: TChartToolset | ||||||
|     left = 160 |     left = 160 | ||||||
|     top = 111 |     top = 111 | ||||||
|     object DataPointHintTool: TDataPointHintTool |     object DataPointHintTool_All: TDataPointHintTool | ||||||
|       Shift = [ssLeft] |       Shift = [ssLeft] | ||||||
|       DistanceMode = cdmOnlyX |  | ||||||
|       GrabRadius = 8 |       GrabRadius = 8 | ||||||
|       OnHint = DataPointHintToolHint |       OnHint = DataPointHintTool_AllHint | ||||||
|  |       OnHintLocation = DataPointHintToolHintLocation | ||||||
|  |     end | ||||||
|  |     object DataPointHintTool_Details: TDataPointHintTool | ||||||
|  |       Shift = [ssCtrl, ssLeft] | ||||||
|  |       GrabRadius = 8 | ||||||
|  |       Targets = [nptPoint, nptXList, nptYList] | ||||||
|  |       OnHint = DataPointHintTool_DetailsHint | ||||||
|       OnHintLocation = DataPointHintToolHintLocation |       OnHintLocation = DataPointHintToolHintLocation | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | |||||||
| @ -18,8 +18,10 @@ type | |||||||
|     ChartToolset1: TChartToolset; |     ChartToolset1: TChartToolset; | ||||||
|     cbUpColor: TColorBox; |     cbUpColor: TColorBox; | ||||||
|     cbDownColor: TColorBox; |     cbDownColor: TColorBox; | ||||||
|     DataPointHintTool: TDataPointHintTool; |     DataPointHintTool_Details: TDataPointHintTool; | ||||||
|  |     DataPointHintTool_All: TDataPointHintTool; | ||||||
|     FinancialChart: TChart; |     FinancialChart: TChart; | ||||||
|  |     Label1: TLabel; | ||||||
|     LblDown: TLabel; |     LblDown: TLabel; | ||||||
|     LblUp: TLabel; |     LblUp: TLabel; | ||||||
|     ohlcSeries: TOpenHighLowCloseSeries; |     ohlcSeries: TOpenHighLowCloseSeries; | ||||||
| @ -28,10 +30,12 @@ type | |||||||
|     procedure cbCandleStickSameColorChange(Sender: TObject); |     procedure cbCandleStickSameColorChange(Sender: TObject); | ||||||
|     procedure cbSeriesTypeChange(Sender: TObject); |     procedure cbSeriesTypeChange(Sender: TObject); | ||||||
|     procedure cbColorChange(Sender: TObject); |     procedure cbColorChange(Sender: TObject); | ||||||
|     procedure DataPointHintToolHint(ATool: TDataPointHintTool; |     procedure DataPointHintTool_AllHint(ATool: TDataPointHintTool; | ||||||
|       const APoint: TPoint; var AHint: String); |       const APoint: TPoint; var AHint: String); | ||||||
|     procedure DataPointHintToolHintLocation(ATool: TDataPointHintTool; |     procedure DataPointHintToolHintLocation(ATool: TDataPointHintTool; | ||||||
|       AHintSize: TSize; var APoint: TPoint); |       AHintSize: TSize; var APoint: TPoint); | ||||||
|  |     procedure DataPointHintTool_DetailsHint(ATool: TDataPointHintTool; | ||||||
|  |       const APoint: TPoint; var AHint: String); | ||||||
|     procedure FormCreate(Sender: TObject); |     procedure FormCreate(Sender: TObject); | ||||||
|   private |   private | ||||||
|     { private declarations } |     { private declarations } | ||||||
| @ -127,7 +131,7 @@ end; | |||||||
| 
 | 
 | ||||||
| { This event handler returns the text to be displayed as a mouse-over hint. | { This event handler returns the text to be displayed as a mouse-over hint. | ||||||
|   We construct the text from the date, and the open, high, low, close values. } |   We construct the text from the date, and the open, high, low, close values. } | ||||||
| procedure TMainForm.DataPointHintToolHint(ATool: TDataPointHintTool; | procedure TMainForm.DataPointHintTool_AllHint(ATool: TDataPointHintTool; | ||||||
|   const APoint: TPoint; var AHint: String); |   const APoint: TPoint; var AHint: String); | ||||||
| var | var | ||||||
|   ser: TOpenHighLowCloseSeries; |   ser: TOpenHighLowCloseSeries; | ||||||
| @ -135,10 +139,38 @@ begin | |||||||
|   ser := ATool.Series as TOpenHighLowCloseSeries; |   ser := ATool.Series as TOpenHighLowCloseSeries; | ||||||
|   AHint := AnsiToUTF8(Format('Date: %s'#13'  Open: %.2m'#13'  High: %.2m'#13'  Low: %.2m'#13'  Close: %.2m', [ |   AHint := AnsiToUTF8(Format('Date: %s'#13'  Open: %.2m'#13'  High: %.2m'#13'  Low: %.2m'#13'  Close: %.2m', [ | ||||||
|     FormatDateTime('dddddd', StrToDate(ser.ListSource[ATool.PointIndex]^.Text)), |     FormatDateTime('dddddd', StrToDate(ser.ListSource[ATool.PointIndex]^.Text)), | ||||||
|     ser.ListSource[ATool.PointIndex]^.YList[0], |     ser.ListSource[ATool.PointIndex]^.GetY(ser.YIndexOpen), | ||||||
|     ser.ListSource[ATool.PointIndex]^.YList[2], |     ser.ListSource[ATool.PointIndex]^.GetY(ser.YIndexHigh), | ||||||
|     ser.ListSource[ATool.PointIndex]^.Y, |     ser.ListSource[ATool.PointIndex]^.GetY(ser.YIndexHigh), | ||||||
|     ser.ListSource[ATool.PointIndex]^.YList[1] |     ser.ListSource[ATool.PointIndex]^.GetY(ser.YIndexClose) | ||||||
|  |   ])); | ||||||
|  | end; | ||||||
|  | 
 | ||||||
|  | { Similar to the method above. Displays only the date and the value clicked } | ||||||
|  | procedure TMainForm.DataPointHintTool_DetailsHint(ATool: TDataPointHintTool; | ||||||
|  |   const APoint: TPoint; var AHint: String); | ||||||
|  | var | ||||||
|  |   ser: TOpenHighLowCloseSeries; | ||||||
|  |   x, y: Integer; | ||||||
|  |   idx: Integer; | ||||||
|  |   yidx: Integer; | ||||||
|  |   ohlcName: String; | ||||||
|  | begin | ||||||
|  |   ser := ATool.Series as TOpenHighLowCloseSeries; | ||||||
|  |   idx := ATool.PointIndex; | ||||||
|  |   yidx := ATool.YIndex; | ||||||
|  |   if yidx = ohlcSeries.YIndexClose then | ||||||
|  |     ohlcName := 'Close' | ||||||
|  |   else if yidx = ohlcSeries.YIndexHigh then | ||||||
|  |     ohlcName := 'High' | ||||||
|  |   else if yidx = ohlcSeries.YIndexLow then | ||||||
|  |     ohlcName := 'Low' | ||||||
|  |   else if yidx = ohlcSeries.YIndexOpen then | ||||||
|  |     ohlcName := 'Open'; | ||||||
|  |   AHint := AnsiToUTF8(Format('Date: %s'#13'  %s: %.2m', [ | ||||||
|  |     FormatDateTime('dddddd', StrToDate(ser.ListSource[idx]^.Text)), | ||||||
|  |     ohlcName, | ||||||
|  |     ser.ListSource[idx]^.GetY(yidx) | ||||||
|   ])); |   ])); | ||||||
| end; | end; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 wp
						wp