📄 teeeditcha.pas
字号:
else
if TabData.TabVisible then
begin
MainPage.ActivePage:=TabData;
MainPageChange(Self);
end
else
if TabTools.TabVisible then
begin
MainPage.ActivePage:=TabTools;
MainPageChange(Self);
end
else
if TabExport.TabVisible then
begin
MainPage.ActivePage:=TabExport;
MainPageChange(Self);
end
else
if TabPrint.TabVisible then
begin
MainPage.ActivePage:=TabPrint;
MainPageChange(Self);
end;
end;
end;
end;
end;
Procedure SelectFirstSeries;
begin
if LBSeries.Items.Count>0 then
begin
if LBSeries.CanFocus then
LBSeries.SetFocus; // 5.03 CLX fix (unless fails to set ItemIndex)
LBSeries.ItemIndex:=0;
if LBSeries.MultiSelect then LBSeries.Selected[0]:=True; { 5.01 }
LBSeriesRefreshButtons(LBSeries);
end;
end;
var St : String;
tmp : Boolean;
begin
if not Assigned(Chart) then
exit;
CBNames.Visible:=(csDesigning in Chart.ComponentState) or TeeSeriesNamesRuntime;
TeeLoadArrowBitmaps(BMoveUp.Glyph,BMoveDown.Glyph);
if TeeIsTrial then
LabelWWW.Cursor:=crHandPoint
else
LabelWWW.Visible:=False;
if TeeToolTypes.Count=0 then TabTools.TabVisible:=False;
LBSeries.Chart:=Chart;
if (Caption='') and Assigned(Chart) then
begin
FmtStr(St,TeeMsg_Editing,[Chart.Name]);
Caption:=St;
end;
HideTabs;
BroadcastShowEditor(nil); // Before PrepareTree !
if Assigned(Chart) and Tree.Visible then PrepareTree;
if TheActivePageIndex<>-1 then ActivatePageIndex;
// Series Groups
BAddGroup.Visible:=ceGroups in EditorOptions;
BDeleteGroup.Visible:=BAddGroup.Visible;
BRenameGroup.Visible:=BAddGroup.Visible;
if ceGroups in EditorOptions then
begin
PanelGroups.Visible:=True;
Splitter1.Visible:=True;
FillGroups;
end;
if not BAddGroup.Visible then
CBNames.Left:=LBSeries.Left;
if Assigned(TheEditSeries) then
begin
LBSeries.SelectedSeries:=TheEditSeries;
LBSeriesEditSeries(LBSeries,0);
end
else
if Assigned(TheTool) and TabTools.TabVisible then
begin
MainPage.ActivePage:=TabTools;
MainPageChange(Self);
end
else
if TheActivePageIndex=-1 then
SelectFirstSeries;
if TabSeriesList.Showing and (LBSeries.Items.Count>0) then // 7.0
Case TChartEditorTab(TheActivePageIndex) of
cetSeriesGeneral,
cetSeriesMarks : begin
LBSeriesEditSeries(LBSeries,LBSeries.ItemIndex);
with TheFormSeries do
begin
tmp:=True;
PageSeriesChanging(PageSeries,tmp);
if TChartEditorTab(TheActivePageIndex)=cetSeriesGeneral then
PageSeries.ActivePage:=TabGeneral
else
PageSeries.ActivePage:=TabMarks;
PageSeriesChange(PageSeries);
end;
end;
else
SelectFirstSeries;
end
else
LBSeriesRefreshButtons(LBSeries);
end;
procedure TChartEditForm.AddSeriesNodes;
var t : Integer;
tmpSeries : TChartSeries;
begin
TreeNodeSeries.DeleteChildren;
for t:=0 to LBSeries.Items.Count-1 do
begin
tmpSeries:=TChartSeries(LBSeries.Items.Objects[t]);
if (csDesigning in tmpSeries.ComponentState) or tmpSeries.ShowInEditor then
Tree.Items.AddChildObject(TreeNodeSeries,LBSeries.Items[t],tmpSeries);
end;
end;
procedure TChartEditForm.PrepareTree;
var tmpNode : TTreeNode;
tmpNode2 : TTreeNode;
t : Integer;
tt : Integer;
begin
TreeSplitter.Visible:=True;
OldWidth:=Width;
Width:=Width+Tree.Width+TreeSplitter.Width;
ButtonHelp.Left:=16;
MainPage.Visible:=False;
TreePanel:=TPanel.Create(Self);
TreePanel.Parent:=Self;
TreePanel.Align:=alClient;
with Tree.Items do
begin
Clear;
TreeNodeSeries:=Tree.Items.AddObject(nil,TabSeriesList.Caption,TabSeriesList);
AddSeriesNodes;
TreeNodeSeries.Expanded:=Chart.SeriesCount<11;
tmpNode:=AddObject(nil,TabChart.Caption,SubPage);
for t:=1 to SubPage.PageCount-1 do
if SubPage.Pages[t].TabVisible then
begin
tmpNode2:=AddChildObject(tmpNode,SubPage.Pages[t].Caption,SubPage.Pages[t]);
if SubPage.Pages[t]=TabAxis then
begin
AddChildObject(tmpNode2,TeeMsg_LeftAxis,Chart.Axes.Left);
AddChildObject(tmpNode2,TeeMsg_RightAxis,Chart.Axes.Right);
AddChildObject(tmpNode2,TeeMsg_TopAxis,Chart.Axes.Top);
AddChildObject(tmpNode2,TeeMsg_BottomAxis,Chart.Axes.Bottom);
AddChildObject(tmpNode2,TeeMsg_DepthAxis,Chart.Axes.Depth);
AddChildObject(tmpNode2,TeeMsg_DepthTopAxis,Chart.Axes.DepthTop);
for tt:=TeeInitialCustomAxis to Chart.Axes.Count-1 do
AddChildObject(tmpNode2,
TeeMsg_CustomAxesEditor+IntToStr(tt-TeeInitialCustomAxis),
Chart.CustomAxes[tt-TeeInitialCustomAxis]);
end
else
if SubPage.Pages[t]=TabTitle then
begin
AddChildObject(tmpNode2,TeeMsg_Title,Chart.Title);
AddChildObject(tmpNode2,TeeMsg_SubTitle,Chart.SubTitle);
AddChildObject(tmpNode2,TeeMsg_Foot,Chart.Foot);
AddChildObject(tmpNode2,TeeMsg_SubFoot,Chart.SubFoot);
end;
end;
tmpNode.Expanded:=True;
for t:=2 to MainPage.PageCount-1 do
if MainPage.Pages[t].TabVisible then
begin
tmpNode:=AddObject(nil,MainPage.Pages[t].Caption,MainPage.Pages[t]);
if MainPage.Pages[t]=TabTools then
begin
TreeNodeTools:=tmpNode;
for tt:=0 to Chart.Tools.Count-1 do
if Chart.Tools[tt].ShowInEditor then
AddChildObject(TreeNodeTools,Chart.Tools[tt].Description,Chart.Tools[tt]);
end;
end;
end;
Tree.Selected:=TreeNodeSeries;
// TreeChange(Tree,Tree.Selected);
Tree.SetFocus;
end;
procedure TChartEditForm.BroadCastShowEditor(Tab:TTabSheet);
var t : Integer;
begin
if Assigned(TeeOnShowEditor) then
for t:=0 to TeeOnShowEditor.Count-1 do
TTeeOnCreateEditor(TeeOnShowEditor[t])(Self,Tab);
end;
procedure TChartEditForm.FormCreate(Sender: TObject);
Function AdjustSize(const Value:String):Integer;
Const PPI={$IFDEF LINUX}75{$ELSE}{$IFDEF CLX}92{$ELSE}96{$ENDIF}{$ENDIF};
begin
result:=StrToInt(Value)*Screen.PixelsPerInch div PPI; { 5.03 }
end;
var tmpH : Integer;
begin
Width:=AdjustSize(TeeMsg_DefaultEditorSize);
tmpH:=AdjustSize(TeeMsg_DefaultEditorHeight);
{$IFNDEF LINUX}
Inc(tmpH,GetSystemMetrics(SM_CYSIZE)-18); // add big (XP) form caption size
{$ENDIF}
Height:=tmpH;
Chart:=nil;
Caption:='';
TheActivePageIndex:=-1;
EditorOptions:=eoAll;
MainPage.ActivePage:=TabChart;
SubPage.ActivePage:=TabSeriesList;
TheHiddenTabs:=[{$IFDEF TEEOCX}cetOpenGL{$ENDIF}]; { 5.02 }
RememberPosition:=TeeReadBoolOption(TeeMsg_RememberPosition,True);
RememberSize:=TeeReadBoolOption(TeeMsg_RememberSize,True);
Tree.Visible:=TeeReadBoolOption(TeeMsg_TreeMode,False);
end;
procedure TChartEditForm.AxisNotifyCustom(Sender: TObject); // 6.01
begin
if Assigned(TheFormSeries) then
TheFormSeries.FillAxes;
end;
type TCustomFormAccess=class(TCustomForm);
procedure TChartEditForm.SubPageChange(Sender: TObject);
var tmpForm : TForm;
begin
{$IFDEF D5}
if HighLightTabs then SubPage.ActivePage.Highlighted:=True;
{$ENDIF}
if Tree.Visible and (Sender=SubPage) then
SelectTreeNodeData(SubPage.ActivePage);
if Assigned(Chart) then
With SubPage.ActivePage do
if ControlCount=0 then
begin
Case {$IFNDEF CLX}PageIndex{$ELSE}TabIndex{$ENDIF} of
teeEditGeneralPage: tmpForm:=TFormTeeGeneral.CreateChart(Self,Chart);
teeEditAxisPage : begin
if not Assigned(TheAxis) then TheAxis:=Chart.LeftAxis;
tmpForm:=TFormTeeAxis.CreateAxis(Self,TheAxis);
TFormTeeAxis(tmpForm).NotifyCustom:=AxisNotifyCustom; // 6.01
end;
teeEditTitlePage : begin
if not Assigned(TheTitle) then TheTitle:=Chart.Title;
tmpForm:=TFormTeeTitle.CreateTitle(Self,Chart,TheTitle);
end;
teeEditLegendPage : tmpForm:=TFormTeeLegend.CreateLegend(Self,Chart.Legend);
teeEditPanelPage : tmpForm:=TFormTeePanel.CreatePanel(Self,Chart);
teeEditPagingPage : tmpForm:=TFormTeePage.CreateChart(Self,Chart);
teeEditWallsPage : begin
if not Assigned(TheWall) then TheWall:=Chart.LeftWall;
tmpForm:=TFormTeeWall.CreateWall(Self,TheWall);
end;
else
tmpForm:=TFormTee3D.CreateChart(Self,Chart);
end;
{$IFNDEF CLR}
with TCustomFormAccess(tmpForm) do
begin
{$IFNDEF CLX}
{$IFDEF D7}
ParentBackground:=True;
{$ENDIF}
{$ENDIF}
ParentColor:=True;
end;
{$ENDIF}
{ show the form... }
With tmpForm do
begin
BorderIcons:=[];
BorderStyle:=TeeFormBorderStyle;
Align:=alClient;
Parent:=Self.SubPage.ActivePage;
{$IFDEF CLX}
TeeFixParentedForm(tmpForm);
{$ENDIF}
Show;
Realign; // 6.0 (fixes Axis tab align bug in VCL)
end;
// Translate the form
case {$IFNDEF CLX}PageIndex{$ELSE}TabIndex{$ENDIF} of
teeEditGeneralPage: TeeTranslateControl(tmpForm, [TFormTeeGeneral(tmpForm).CBCursor]);
teeEditTitlePage: TeeTranslateControl(tmpForm, [TFormTeeTitle(tmpForm).MText]);
else
TeeTranslateControl(tmpForm);
end;
end;
if SubPage.ActivePage=Tab3D then
TFormTee3D(Tab3D.Controls[0]).CheckControls;
end;
procedure TChartEditForm.BCloseClick(Sender: TObject);
begin
ModalResult:=mrCancel;
end;
procedure TChartEditForm.BMoveUPClick(Sender: TObject);
begin
LBSeries.MoveCurrentUp;
end;
procedure TChartEditForm.BMoveDownClick(Sender: TObject);
begin
LBSeries.MoveCurrentDown;
end;
procedure TChartEditForm.BAddSeriesClick(Sender: TObject);
var tmpSeries : TChartSeries;
begin
TabSeries.Parent:=MainPage;
tmpSeries:=LBSeries.AddSeriesGallery;
if Assigned(tmpSeries) and Assigned(tmpSeries.FunctionType) then
begin
TheSeries:=tmpSeries;
MainPage.ActivePage:=TabSeries;
SetTabSeries;
With TheFormSeries do
begin
PageSeries.ActivePage:=TabDataSource;
PageSeriesChange(Self);
CBDataSourcestyleChange(Self);
end;
end;
if LBSeries.CanFocus then // 7.0
LBSeries.SetFocus;
end;
procedure TChartEditForm.InternalSetupFormSeries;
begin
TabSeries.Parent:=MainPage;
TheFormSeries.DestroySeriesForms;
TheFormSeries.TheSeries:=LBSeries.SelectedSeries;
end;
procedure TChartEditForm.BDeleteSeriesClick(Sender: TObject);
begin
LBSeries.DeleteSeries;
if Assigned(TheFormSeries) then
begin
TheFormSeries.TheSeries:=nil;
InternalSetupFormSeries;
end;
end;
procedure TChartEditForm.BRenameSeriesClick(Sender: TObject);
begin
if LBSeries.RenameSeries and Tree.Visible then
TreeNodeCurrentSeries.Text:=LBSeries.Items[LBSeries.ItemIndex];
if (Parent=nil) and LBSeries.CanFocus then ActiveControl:=LBSeries; { 5.01 }
end;
procedure TChartEditForm.BCloneSeriesClick(Sender: TObject);
begin
LBSeries.CloneSeries;
end;
procedure TChartEditForm.SetTabSeries;
begin
if Assigned(TheFormSeries) then
TheFormSeries.TheSeries:=LBSeries.SelectedSeries
else
begin
TheFormSeries:=TFormTeeSeries.Create(Self);
With TheFormSeries do
begin
Self.LBSeries.OtherItems:=CBSeries.Items;
TheListBox:=Self.LBSeries;
BorderIcons:=[];
BorderStyle:=TeeFormBorderStyle;
Parent:=TabSeries;
Align:=alClient;
ShowTabDataSource:=ceDataSource in EditorOptions;
ShowTabGeneral:=not (cetSeriesGeneral in TheHiddenTabs);
ShowTabMarks:=not (cetSeriesMarks in TheHiddenTabs);
IsDssGraph:=Self.IsDssGraph;
TheSeries:=Self.LBSeries.SelectedSeries;
Self.LBSeries.FillSeries(TheSeries);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -