📄 teeeditcha.pas
字号:
{$IFDEF D5}
if AllowChange and HighLightTabs then MainPage.ActivePage.HighLighted:=False;
{$ENDIF}
end;
procedure TChartEditForm.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited;
if (Operation=opRemove) and Assigned(TheChart) and (AComponent=TheChart) then
TheChart:=nil;
end;
procedure TChartEditForm.SubPageChanging(Sender: TObject;
var AllowChange: Boolean);
begin
{$IFDEF D5}
if HighLightTabs then SubPage.ActivePage.Highlighted:=False;
{$ENDIF}
end;
procedure TChartEditForm.SBGridTextClick(Sender: TObject);
begin
ChartGrid1.ShowLabels:=SBGridText.Down;
end;
procedure TChartEditForm.SBGridColClick(Sender: TObject);
begin
ChartGrid1.ShowColors:=SBGridCol.Down;
end;
procedure TChartEditForm.SBGrid3DClick(Sender: TObject);
begin
ChartGrid1.Grid3DMode:=SBGrid3D.Down;
end;
procedure TChartEditForm.SBGridXClick(Sender: TObject);
begin
if SBGridX.Down then
ChartGrid1.ShowXValues:=cgsYes
else
ChartGrid1.ShowXValues:=cgsNo
end;
procedure TChartEditForm.Deleterow1Click(Sender: TObject);
begin
ChartGrid1.Delete
end;
Function TChartEditForm.CurrentGroup:TSeriesGroup;
begin
if (DeltaGroup=1) and (Groups.ItemIndex=0) then
result:=nil
else
result:=Chart.SeriesList.Groups[Groups.ItemIndex-DeltaGroup];
end;
procedure TChartEditForm.GroupsClick(Sender: TObject);
begin
LBSeries.SeriesGroup:=CurrentGroup;
EnableGroupButtons;
end;
procedure TChartEditForm.EnableGroupButtons;
begin
BDeleteGroup.Enabled:=Groups.ItemIndex>=DeltaGroup;
BRenameGroup.Enabled:=BDeleteGroup.Enabled;
end;
procedure TChartEditForm.GroupsClickCheck(Sender: TObject);
begin
if (DeltaGroup=1) and (Groups.ItemIndex=0) then
begin
Chart.SeriesList.AllActive:=Groups.Checked[Groups.ItemIndex];
FillGroups;
end
else
begin
{$IFDEF LCL}
if Groups.Checked[Groups.ItemIndex] then
CurrentGroup.Active:=gaYes
else
CurrentGroup.Active:=gaNo;
{$ELSE}
case Groups.State[Groups.ItemIndex] of
cbChecked: CurrentGroup.Active:=gaYes;
cbUnChecked: CurrentGroup.Active:=gaNo;
cbGrayed: CurrentGroup.Active:=gaSome;
end;
{$ENDIF}
if DeltaGroup=1 then
Groups.Checked[0]:=Chart.SeriesList.AllActive;
end;
EnableGroupButtons;
end;
procedure TChartEditForm.LBSeriesChangeActive(Sender: TChartListBox;
Series: TCustomChartSeries);
begin
FillGroups;
end;
procedure TChartEditForm.GroupsDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var tmp : Integer;
begin
tmp:=Groups.ItemAtPos(TeePoint(X,Y),True);
Accept:=(tmp<>-1) and (Source is TChartListBox);
if Accept and (tmp>=DeltaGroup) then
Accept:=Accept and
(Chart.SeriesList.Groups[tmp-DeltaGroup].Series.IndexOf(TChartListBox(Source).SelectedSeries)=-1);
end;
procedure TChartEditForm.GroupsDragDrop(Sender, Source: TObject; X,
Y: Integer);
Procedure RefreshGroups(Index:Integer);
begin
FillGroups;
Groups.ItemIndex:=Index;
GroupsClick(Groups);
end;
var tmp : Integer;
tmpSeries : TChartSeries;
begin
tmp:=Groups.ItemAtPos(TeePoint(X,Y),True);
if (tmp<>-1) and (Source is TChartListBox) then
begin
tmpSeries:=TChartListBox(Source).SelectedSeries;
if (tmp=0) and (DeltaGroup=1) then
begin
if Groups.ItemIndex>=DeltaGroup then
CurrentGroup.Series.Remove(tmpSeries);
RefreshGroups(tmp);
end
else
with Chart.SeriesList.Groups[tmp-DeltaGroup].Series do
begin
if IndexOf(tmpSeries)=-1 then
begin
Add(tmpSeries);
if Groups.ItemIndex>=DeltaGroup then
CurrentGroup.Series.Remove(tmpSeries);
RefreshGroups(tmp);
end;
end;
end;
end;
procedure TChartEditForm.BAddGroupClick(Sender: TObject);
var tmpSt : String;
begin
tmpSt:='';
if InputQuery(TeeMsg_AddNewGroup,TeeMsg_GroupName,tmpSt) then
begin
Chart.SeriesList.AddGroup(tmpSt);
FillGroups;
Groups.ItemIndex:=Groups.Items.Count-1;
GroupsClick(Self);
end;
end;
procedure TChartEditForm.BRenameGroupClick(Sender: TObject);
var tmpSt : String;
begin
tmpSt:=Groups.Items[Groups.ItemIndex];
if InputQuery(TeeMsg_ChangeGroupName,TeeMsg_GroupName,tmpSt) then
begin
CurrentGroup.Name:=tmpSt;
FillGroups;
end;
end;
procedure TChartEditForm.BDeleteGroupClick(Sender: TObject);
begin
if TeeYesNoDelete(Groups.Items[Groups.ItemIndex],Self) then
begin
CurrentGroup.Free;
FillGroups;
end;
end;
procedure TChartEditForm.TreeChange(Sender: TObject; Node: TTreeNode);
procedure SetMainTab(TabSheet: TTabSheet; SynchroNode:Boolean=True);
begin
MainPage.ActivePage.Parent:=MainPage;
MainPage.ActivePage:=TabSheet;
if TabSheet=TabTools then ReparentTools;
if SynchroNode then
MainPageChange(MainPage);
end;
procedure SetSubTab(TabSheet: TTabSheet; SynchroNode:Boolean=True);
begin
SubPage.Parent:=TabChart;
SubPage.ActivePage.Parent:=SubPage;
SubPage.ActivePage:=TabSheet;
if TabSheet=TabAxis then ReparentAxis
else
if TabSheet=TabTitle then ReparentTitle;
if SynchroNode then SubPageChange(SubPage)
else SubPageChange(Self);
end;
begin
while TreePanel.ControlCount>0 do TreePanel.Controls[0].Parent:=nil;
if Assigned(Node.Data) then
if TObject(Node.Data) is TTabSheet then
with TTabSheet(Node.Data) do
begin
if PageControl=MainPage then SetMainTab(TTabSheet(Node.Data))
else
if PageControl=SubPage then SetSubTab(TTabSheet(Node.Data));
Parent:=TreePanel;
Align:=alClient;
if TTabSheet(Node.Data)=TabSeriesList then
if LBSeries.CanFocus then
begin
LBSeries.SetFocus;
LBSeries.Repaint;
end;
end
else
if TObject(Node.Data) is TChartSeries then
TreeSelectSeries(TChartSeries(Node.Data))
else
if TObject(Node.Data) is TPageControl then
begin
ResetParentTab(SubPage);
SubPage.Parent:=TreePanel;
SubPage.Align:=alClient;
TabSeriesList.TabVisible:=False;
SubPageChange(Self);
end
else
{$IFNDEF TEELITE}
if TObject(Node.Data) is TTeeCustomTool then
begin
SetMainTab(TabTools,False);
if TabTools.ControlCount=0 then // 7.0
CreateToolsForm;
with TFormTeeTools(TabTools.Controls[0]) do
begin
with LBTools do
begin
if Items.Count=0 then FormShow(Self);
ItemIndex:=Items.IndexOfObject(TTeeCustomTool(Node.Data));
end;
LBToolsClick(LBTools);
PanelToolEditor.Parent:=TreePanel;
end;
end
else
{$ENDIF}
if TObject(Node.Data) is TChartAxis then
begin
SetSubTab(TabAxis,False);
with TFormTeeAxis(TabAxis.Controls[0]) do
begin
TheAxis:=TChartAxis(Node.Data);
LBAxes.ItemIndex:=Node.Index;
PageAxisChange(PageAxis);
PageAxis.Parent:=TreePanel;
end;
end
else
if TObject(Node.Data) is TChartTitle then
begin
SetSubTab(TabTitle,False);
with TFormTeeTitle(TabTitle.Controls[0]) do
begin
TheTitle:=TChartTitle(Node.Data);
CBTitles.ItemIndex:=Node.Index;
PageControlTitle.Parent:=TFormTeeTitle(TabTitle.Controls[0]);
CBTitlesChange(CBTitles);
PageControlTitle.Parent:=TreePanel;
end;
end;
end;
procedure TChartEditForm.TreeEditing(Sender: TObject; Node: TTreeNode;
var AllowEdit: Boolean);
begin
AllowEdit:=TObject(Node) is TChartSeries;
end;
{$IFNDEF TEELITE}
procedure TChartEditForm.AddedTool(Sender:TObject);
begin
if Assigned(TreeNodeTools) then
Tree.Items.AddChildObject(TreeNodeTools,TTeeCustomTool(Sender).Description,Sender);
end;
procedure TChartEditForm.DeletedTool(Sender:TObject);
var t: Integer;
begin
if Assigned(TreeNodeTools) then
with TreeNodeTools do
for t:=0 to Count-1 do
if {$IFDEF LCL}Items{$ELSE}Item{$ENDIF}[t].Data=Sender then
begin
{$IFDEF LCL}Items{$ELSE}Item{$ENDIF}[t].Free;
break;
end;
end;
{$ENDIF}
procedure TChartEditForm.FormDestroy(Sender: TObject);
begin
// Tree mode fix at destroy
if Assigned(Tree) and Tree.Visible then
begin
ResetParentTab(MainPage);
ResetParentTab(SubPage);
Width:=OldWidth;
end;
{$IFNDEF LINUX}
if Assigned(Chart) and (RememberPosition or RememberSize) then
with TRegistry.Create do
try
if OpenKey(TeeMsg_EditorKey,True) then
begin
if RememberPosition then
begin
WriteInteger('Left',Self.Left);
WriteInteger('Top',Self.Top);
end;
if RememberSize then
begin
if Self.Width<>StrToInt(TeeMsg_DefaultEditorSize) then
WriteInteger('Width',Self.Width);
if Self.Height<>StrToInt(TeeMsg_DefaultEditorHeight) then
WriteInteger('Height',Self.Height);
if Assigned(Tree) and Tree.Visible then
WriteInteger('TreeWidth',Self.Tree.Width);
end;
end;
finally
Free;
end;
{$ENDIF}
end;
procedure TChartEditForm.FormResize(Sender: TObject);
begin
if Tree.Visible then
OldWidth:=Width-Tree.Width-TreeSplitter.Width;
end;
procedure TChartEditForm.Insertrow1Click(Sender: TObject);
begin
ChartGrid1.Insert;
end;
procedure TChartEditForm.CBNamesClick(Sender: TObject);
begin
// Fix for VCL TCustomComboBoxStrings bug 7.02
if not Assigned(TabSeries.Parent) then
TabSeries.Parent:=MainPage;
LBSeries.ShowSeriesNames:=CBNames.Checked;
if CBNames.Checked then
BRenameSeries.Caption:='&Name...' // do not localize
else
BRenameSeries.Caption:='&Title...'; // do not localize
TeeTranslateControl(BRenameSeries);
end;
{$IFNDEF CLR}
type
TChartGridAccess=class(TChartGrid);
{$ENDIF}
procedure TChartEditForm.PopupDataPopup(Sender: TObject);
var tmpColor : TColor;
begin
EditColor1.Visible:=Assigned({$IFNDEF CLR}TChartGridAccess{$ENDIF}(ChartGrid1).GetSeriesColor(tmpColor));
DefaultColor1.Visible:=EditColor1.Visible and (tmpColor<>clTeeColor);
Makenullpoint1.Visible:=EditColor1.Visible and (tmpColor<>clNone);
N1.Visible:=EditColor1.Visible;
end;
procedure TChartEditForm.EditColor1Click(Sender: TObject);
begin
ChartGrid1.ChangeColor;
end;
procedure TChartEditForm.DefaultColor1Click(Sender: TObject);
begin
ChartGrid1.ChangeColor(clTeeColor);
end;
procedure TChartEditForm.Makenullpoint1Click(Sender: TObject);
begin
ChartGrid1.ChangeColor(clNone);
end;
procedure TChartEditForm.extfont1Click(Sender: TObject);
begin
EditTeeFont(Self,ChartGrid1.Font);
// 7.01
with TBitmap.Create,Canvas do
try
Font.Assign(ChartGrid1.Font);
ChartGrid1.DefaultRowHeight:=2+TextHeight('W');
finally
Free;
end;
end;
initialization
TeeOnShowEditor:=TList.Create;
RegisterClass(TChartEditForm);
finalization
TeeOnShowEditor.Free;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -