📄 frxcharteditor.pas
字号:
YValuesE.Text:= FCurSeries.YSource;
end;
TopNE.Text:= IntToStr(FCurSeries.TopN);
TopNCaptionE.Text:= FCurSeries.TopNCaption;
SortCB.ItemIndex:= Integer(FCurSeries.SortOrder);
FUpdating:= False;
end;
end;
procedure TfrxChartEditorForm.AddBClick(Sender:TObject);
var
pt:TPoint;
begin
ChartTree.SetFocus;
pt:= AddB.ClientToScreen(Point(0, 24));
Popup.Popup(pt.X, pt.Y);
end;
procedure TfrxChartEditorForm.AddClick(Sender:TObject);
var
sc:TSeriesClass;
s:TChartSeries;
n:TTreeNode;
ind:Integer;
b:Boolean;
begin
ind:= TMenuItem(Sender).Tag;
sc:= ChartSeries[ind];
s:= TChartSeries(sc.NewInstance);
s.Create(FChart.Chart);
FChart.Chart.AddSeries(s);
FChart.SeriesData.Add;
with FChart.Chart do
begin
b:= not (s is TPieSeries);
View3DOptions.Orthogonal:= b;
AxisVisible:= b;
View3DWalls:= b;
end;
n:= ChartTree.Items.AddChild(ChartTree.Items[0], 'Series'+
IntToStr(ChartTree.Items.Count));
n.ImageIndex:= ind+1;
n.SelectedIndex:= ind+1;
n.StateIndex:= ind+1;
n.Data:= s;
ChartTree.Selected:= n;
ChartTreeClick(nil);
end;
procedure TfrxChartEditorForm.DeleteBClick(Sender:TObject);
var
s:TChartSeries;
begin
ChartTree.SetFocus;
s:= ChartTree.Selected.Data;
s.Free;
FCurSeries.Free;
ChartTree.Selected.Free;
ChartTree.Selected:= ChartTree.Items[0];
ChartTreeClick(nil);
end;
procedure TfrxChartEditorForm.InsExpressionB1Click(Sender:TObject);
var
s:String;
begin
s:= TfrxCustomDesigner(Owner).InsertExpression('');
if s<>'' then
begin
X1ValuesCB.Text:= s;
X1ValuesCB.SetFocus;
end;
end;
procedure TfrxChartEditorForm.InsExpressionB2Click(Sender:TObject);
var
s:String;
begin
s:= TfrxCustomDesigner(Owner).InsertExpression('');
if s<>'' then
begin
Y1ValuesCB.Text:= s;
Y1ValuesCB.SetFocus;
end;
end;
procedure TfrxChartEditorForm.InsExpressionB3Click(Sender:TObject);
var
s:String;
begin
s:= TfrxCustomDesigner(Owner).InsertExpression('');
if s<>'' then
begin
X2ValuesCB.Text:= s;
X2ValuesCB.SetFocus;
end;
end;
procedure TfrxChartEditorForm.InsExpressionB4Click(Sender:TObject);
var
s:String;
begin
s:= TfrxCustomDesigner(Owner).InsertExpression('');
if s<>'' then
begin
Y2ValuesCB.Text:= s;
Y2ValuesCB.SetFocus;
end;
end;
procedure TfrxChartEditorForm.CalcWidth(RB:TRadioButton);
begin
RB.Width:= Canvas.TextWidth(RB.Caption)+24;
end;
procedure TfrxChartEditorForm.EnablePanel(P:TWinControl; E:Boolean);
var
i:Integer;
begin
for i:= 0 to P.ControlCount-1 do
begin
THackControl(P.Controls[i]).Enabled:= E;
if not E then
if (P.Controls[i] is TEdit) or (P.Controls[i] is TComboBox) then
THackControl(P.Controls[i]).Text:= '';
if P.Controls[i] is TGroupBox then
EnablePanel(TWinControl(P.Controls[i]), E);
end;
end;
procedure TfrxChartEditorForm.FillDataFields;
var
ds:TfrxDataSet;
l:TStringList;
i:Integer;
begin
ds:= FReport.GetDataSet(DatasetsCB.Items[DatasetsCB.ItemIndex]);
if ds = nil then
begin
X1ValuesCB.Items.Clear;
Y1ValuesCB.Items.Clear;
end
else
begin
l:= TStringList.Create;
try
ds.GetFieldList(l);
for i:= 0 to l.Count-1 do
l[i]:= FReport.GetAlias(ds)+'."'+l[i]+'"';
X1ValuesCB.Items:= l;
Y1ValuesCB.Items:= l;
finally
l.Free;
end;
end;
end;
procedure TfrxChartEditorForm.FillDataFields1;
var
db:TfrxDataBand;
ds:TfrxDataSet;
l:TStringList;
i:Integer;
begin
db:= TfrxDataBand(FReport.FindObject(DatabandsCB.Items[DatabandsCB.ItemIndex]));
if db<>nil then
ds:= db.DataSet
else
ds:= nil;
if ds = nil then
begin
X2ValuesCB.Items.Clear;
Y2ValuesCB.Items.Clear;
end
else
begin
l:= TStringList.Create;
try
ds.GetFieldList(l);
for i:= 0 to l.Count-1 do
l[i]:= FReport.GetAlias(ds)+'."'+l[i]+'"';
X2ValuesCB.Items:= l;
Y2ValuesCB.Items:= l;
finally
l.Free;
end;
end;
end;
procedure TfrxChartEditorForm.DoClick(Sender:TObject);
begin
if FUpdating then Exit;
FUpdating:= True;
case TControl(Sender).Tag of
1:// DBSourceRB
begin
DBSourceRB.Checked:= True;
FCurSeries.DataType:= dtDBData;
FCurSeries.XSource:= '';
FCurSeries.YSource:= '';
EnablePanel(DBSourceP, True);
EnablePanel(BandSourceP, False);
EnablePanel(FixedDataP, False);
end;
2:// DatasetsCB
begin
FillDataFields;
FCurSeries.DataSet:= FReport.GetDataSet(DatasetsCB.Items[DatasetsCB.ItemIndex]);
end;
3:// X1ValuesCB
begin
FCurSeries.XSource:= X1ValuesCB.Text;
end;
4:// Y1ValuesCB
begin
FCurSeries.YSource:= Y1ValuesCB.Text;
end;
5:// BandSourceRB
begin
BandSourceRB.Checked:= True;
FCurSeries.DataType:= dtBandData;
FCurSeries.XSource:= '';
FCurSeries.YSource:= '';
EnablePanel(DBSourceP, False);
EnablePanel(BandSourceP, True);
EnablePanel(FixedDataP, False);
end;
6:// DatabandsCB
begin
FillDataFields1;
FCurSeries.DataBand:=
TfrxDataBand(FReport.FindObject(DatabandsCB.Items[DatabandsCB.ItemIndex]));
end;
7:// X2ValuesCB
begin
FCurSeries.XSource:= X2ValuesCB.Text;
end;
8:// Y2ValuesCB
begin
FCurSeries.YSource:= Y2ValuesCB.Text;
end;
9:// FixedDataRB
begin
FixedDataRB.Checked:= True;
FCurSeries.DataType:= dtFixedData;
FCurSeries.XSource:= '';
FCurSeries.YSource:= '';
EnablePanel(DBSourceP, False);
EnablePanel(BandSourceP, False);
EnablePanel(FixedDataP, True);
end;
10:// XValuesE
begin
FCurSeries.XSource:= XValuesE.Text;
end;
11:// YValuesE
begin
FCurSeries.YSource:= YValuesE.Text;
end;
12:// TopNE
begin
FCurSeries.TopN:= StrToInt(TopNE.Text);
end;
13:// TopNCaptionE
begin
FCurSeries.TopNCaption:= TopNCaptionE.Text;
end;
14:// SortCB
begin
FCurSeries.SortOrder:= TfrxSeriesSortOrder(SortCB.ItemIndex);
end;
end;
FUpdating:= False;
end;
procedure TfrxChartEditorForm.UpDown1Click(Sender:TObject; Button:TUDBtnType);
begin
DoClick(Sender);
end;
procedure TfrxChartEditorForm.FormCreate(Sender:TObject);
begin
frxResources.LocalizeForm(Self);
end;
initialization
frxComponentEditors.Register(TfrxChartView, TfrxChartEditor);
frxHideProperties(TChart, 'Align;AllowPanning;AllowZoom;Anchors;AnimatedZoom;'+
'AnimatedZoomSteps;AutoSize;BackImage;BackImageInside;BackImageMode;'+
'BevelInner;BevelOuter;BevelWidth;BorderStyle;BorderWidth;ClipPoints;Color;'+
'Constraints;Cursor;DragCursor;DragKind;DragMode;DockSite;Enabled;Foot;Frame;Height;'+
'HelpContext;Hint;Left;Locked;MarginBottom;MarginLeft;MarginRight;MarginTop;'+
'MaxPointsPerPage;Name;Page;ParentColor;ParentShowHint;PopupMenu;PrintProportional;'+
'ScaleLastPage;SeriesList;ShowHint;TabOrder;TabStop;Tag;Top;UseDockManager;'+
'Visible;Width');
frxHideProperties(TChartSeries, 'ColorSource;Cursor;DataSource;Name;'+
'ParentChart;Tag;XLabelsSource');
frxHideProperties(TfrxChartView, 'SeriesData');
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -