home *** CD-ROM | disk | FTP | other *** search
- unit Uclick;
- { This example shows how to obtain information when the user
- clicks on a Series point.
- }
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls;
-
- type
- TClickingForm = class(TForm)
- Chart1: TChart;
- Series1: TPointSeries;
- Label1: TLabel;
- Button1: TButton;
- procedure FormCreate(Sender: TObject);
- procedure Chart1ClickSeries(Sender: TCustomChart; Series: TChartSeries;
- ValueIndex: Longint; Button: TMouseButton; Shift: TShiftState; X,
- Y: Integer);
- procedure Button1Click(Sender: TObject);
- procedure Chart1ClickLegend(Sender: TCustomChart; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- ClickingForm: TClickingForm;
-
- implementation
-
- {$R *.DFM}
-
- procedure TClickingForm.FormCreate(Sender: TObject);
- begin
- { sample values... }
- With Series1 do
- begin
- Add( 100, 'John', clRed );
- Add( 70, 'Mary', clYellow );
- Add( 130, 'Mike', clBlue );
- Add( 190, 'Peter', clGreen );
- end;
-
- { nice cursor }
- Series1.Cursor:=crTeeHand;
- end;
-
- { Use this event to get notified when users click over a
- Series point (or Bar, or Line, etc)
- }
- procedure TClickingForm.Chart1ClickSeries(Sender: TCustomChart;
- Series: TChartSeries; ValueIndex: Longint; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- ShowMessage( 'Point has been clicked ! ' +#13+#13+
- 'Series: '+Series.Name +#13+
- 'Point Index: '+IntToStr( ValueIndex )+ #13+
- 'Point Value: '+FloatToStr(Series.YValue[ValueIndex])+ #13+
- 'Point Label: '+Series.XLabel[ValueIndex]+ #13+
- 'Point Color: '+ColorToString(Series.ValueColor[ValueIndex])+#13+#13+
- 'Advanced: '+#13+
- 'Point X pixel coordinate: '+IntToStr(Series.CalcXPos(ValueIndex))+#13+
- 'Point Y pixel coordinate: '+IntToStr(Series.CalcYPos(ValueIndex))
- );
- end;
-
- procedure TClickingForm.Button1Click(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TClickingForm.Chart1ClickLegend(Sender: TCustomChart;
- Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
- var tmp:Integer;
- begin
- tmp:=Chart1.Legend.Clicked(x,y);
- if tmp<>-1 then Chart1ClickSeries(Sender,Series1,tmp,Button,Shift,X,Y);
- end;
-
- procedure TClickingForm.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
- Y: Integer);
- begin
- if Chart1.Legend.Clicked(x,y)<>-1 then Chart1.Cursor:=crTeeHand
- else Chart1.Cursor:=crDefault;
- Chart1.OriginalCursor:=Chart1.Cursor;
- end;
-
- end.
-