home *** CD-ROM | disk | FTP | other *** search
- {*********************************************}
- { TeeChart Delphi Component Library }
- { Bubble Series Type Demo }
- { Copyright (c) 1995-1996 by David Berneda }
- { All rights reserved }
- {*********************************************}
- unit Bubble;
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, Chart, Series, ExtCtrls, StdCtrls, BubbleCh,
- Teengine, Buttons, TeeProcs;
-
- type
- TBubbleForm = class(TForm)
- Chart1: TChart;
- Panel1: TPanel;
- CheckBox1: TCheckBox;
- Timer1: TTimer;
- CheckBox2: TCheckBox;
- ComboBox1: TComboBox;
- Label1: TLabel;
- BitBtn3: TBitBtn;
- CheckBox3: TCheckBox;
- BubbleSeries1: TBubbleSeries;
- ZoomInButton: TSpeedButton;
- ZoomOutButton: TSpeedButton;
- Memo1: TMemo;
- procedure FormCreate(Sender: TObject);
- procedure CheckBox1Click(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
- procedure CheckBox2Click(Sender: TObject);
- procedure ComboBox1Change(Sender: TObject);
- procedure CheckBox3Click(Sender: TObject);
- function BubbleSeries1GetPointerStyle(Sender: TChartSeries;
- ValueIndex: Longint): TSeriesPointerStyle;
- procedure ZoomInButtonClick(Sender: TObject);
- procedure ZoomOutButtonClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- implementation
-
- {$R *.DFM}
-
- procedure TBubbleForm.FormCreate(Sender: TObject);
- var t:Longint;
- begin
- ComboBox1.ItemIndex:=Ord(psCircle); { <-- Circled Bubbles by default }
- BubbleSeries1.Clear;
- for t:=1 to 100 do
- BubbleSeries1.AddBubble( Date+t,
- Random(ChartSamplesMax), { <-- y value }
- ChartSamplesMax/(20+Random(25)), { <-- radius value }
- '', { <-- label string }
- GetDefaultColor(t)); { <-- color }
- end;
-
- procedure TBubbleForm.CheckBox1Click(Sender: TObject);
- begin
- Timer1.Enabled:=CheckBox1.Checked; { <-- on / off animation }
- end;
-
- procedure TBubbleForm.Timer1Timer(Sender: TObject);
- Var tmpColor:TColor;
- Begin
- Timer1.Enabled:=False; { <-- stop the timer (this is optional) }
- With BubbleSeries1 do
- Begin
- tmpColor:=ValueColor[0];
- Delete(0); { <-- remove the first point }
- { Add a new random bubble }
- AddBubble( XValues.Last+1, { <-- x value }
- Random(ChartSamplesMax), { <-- y value }
- ChartSamplesMax/(20+Random(25)), { <-- radius value }
- '', { <-- label string }
- tmpColor); { <-- color }
- end;
- if Random(100)<8 then
- begin
- if ComboBox1.ItemIndex<ComboBox1.Items.Count-1 then
- ComboBox1.ItemIndex:=ComboBox1.ItemIndex+1
- else
- ComboBox1.ItemIndex:=0;
- ComboBox1Change(Self);
- end;
- if (GetTickCount mod 1000)<=55 then
- begin
- with BubbleSeries1.GetHorizAxis.Title do
- if Angle>=90 then Angle:=Angle-90 else Angle:=270;
-
- with BubbleSeries1.GetVertAxis.Title do
- if Angle>=90 then Angle:=Angle-90 else Angle:=270;
-
- with BubbleSeries1.GetVertAxis do
- if LabelsAngle>=90 then LabelsAngle:=LabelsAngle-90 else LabelsAngle:=270;
-
- with BubbleSeries1.GetHorizAxis do
- if LabelsAngle>=90 then LabelsAngle:=LabelsAngle-90 else LabelsAngle:=270;
- end;
- Timer1.Enabled:=True; { <-- restart the timer }
- end;
-
- procedure TBubbleForm.CheckBox2Click(Sender: TObject);
- begin
- BubbleSeries1.Marks.Visible:=CheckBox2.Checked; { switch on/off Marks }
- end;
-
- procedure TBubbleForm.ComboBox1Change(Sender: TObject);
- begin { the demo combobox1 allows changing Bubble style }
- BubbleSeries1.Pointer.Style:=TSeriesPointerStyle(ComboBox1.ItemIndex);
- end;
-
- procedure TBubbleForm.CheckBox3Click(Sender: TObject);
- begin
- Chart1.Repaint;
- end;
-
- function TBubbleForm.BubbleSeries1GetPointerStyle(Sender: TChartSeries;
- ValueIndex: Longint): TSeriesPointerStyle;
- begin
- if CheckBox3.Checked then
- result:=TSeriesPointerStyle(Random(Ord(High(TSeriesPointerStyle))))
- else
- result:=BubbleSeries1.Pointer.Style;
- end;
-
- procedure TBubbleForm.ZoomInButtonClick(Sender: TObject);
- begin
- Chart1.ZoomPercent(110);
- end;
-
- procedure TBubbleForm.ZoomOutButtonClick(Sender: TObject);
- begin
- Chart1.ZoomPercent(90);
- end;
-
-
-
- end.
-