📄 teeexpform.pas
字号:
end;
end;
{$IFNDEF NOUSE_BDE}
procedure TTeeDlgWizard.ChangedList(Sender:TObject);
begin
NextButton.Enabled:=TSelectListForm(Sender).ToList.Items.Count>0;
end;
{$ENDIF}
procedure TTeeDlgWizard.RefreshButtons;
begin
PrevButton.Enabled := PageControl.ActivePage.PageIndex > 0;
With NextButton do
begin
Case PageControl.ActivePage.PageIndex of
pgTable: Enabled:=CBTables.Text<>'';
pgFields: Enabled:=IFields.ToList.Items.Count>0;
else
Enabled:=True;
end;
if PageControl.ActivePage.PageIndex=pgPreviewChart then
Caption:=TeeMsg_ExpFinish
else
Caption:=TeeMsg_ExpNext;
end;
end;
type TSeriesAccess=class(TChartSeries);
Procedure TTeeDlgWizard.CreateSeries( AOwner:TComponent;
AChart:TCustomChart;
{$IFNDEF NOUSE_BDE}
ATable:TDataSet;
{$ENDIF}
ShowData:Boolean );
var t : Integer;
tmpSeries : TChartSeries;
{$IFNDEF NOUSE_BDE}
theField : TField;
{$ENDIF}
tmpSeriesClass : TChartSeriesClass;
tmpFunctionClass : TTeeFunctionClass;
NumSeries : Integer;
SubIndex : Integer;
begin
{$IFNDEF NOUSE_BDE}
if Assigned(ATable) then
NumSeries:=Math.Max(1,IFields.ToList.Items.Count)
else
{$ENDIF}
NumSeries:=2;
tmpGallery.GetSeriesClass(tmpSeriesClass,tmpFunctionClass,SubIndex);
if tmpSeriesClass=TPieSeries then NumSeries:=1;
AChart.FreeAllSeries;
for t:=0 to NumSeries-1 do
begin
tmpSeries:=tmpSeriesClass.Create(AOwner);
With tmpSeries do
begin
{ this should be done BEFORE setting ParentChart ! }
{$IFNDEF CLR}
if SubIndex<>-1 then { sub-gallery style... }
TSeriesAccess(tmpSeries).SetSubGallery(tmpSeries,SubIndex);
{$ENDIF}
{ now set the Chart... }
ParentChart:=AChart;
{$IFNDEF NOUSE_BDE}
if Assigned(ATable) then
begin
if AChart is TDBChart then TDBChart(AChart).AutoRefresh:=False;
DataSource:=ATable;
MandatoryValueList.ValueSource:=IFields.ToList.Items[t];
TheField:=ATable.FieldByName(MandatoryValueList.ValueSource);
if (t=0) and (cbLabelsFields.ItemIndex>=0) then
XLabelsSource:=cbLabelsFields.Items[cbLabelsFields.ItemIndex];
MandatoryValueList.DateTime:=TeeFieldType(TheField.DataType)=tftDateTime;
GetHorizAxis.Title.Caption:='';
GetVertAxis.Title.Caption:='';
NotMandatoryValueList.DateTime:=False;
if YMandatory then
begin
if NumSeries=1 then GetVertAxis.Title.Caption:=YValues.ValueSource;
if XLabelsSource<>'' then GetHorizAxis.Title.Caption:=XLabelsSource;
end
else
begin
if NumSeries=1 then GetHorizAxis.Title.Caption:=XValues.ValueSource;
if XLabelsSource<>'' then GetVertAxis.Title.Caption:=XLabelsSource;
end;
Title:=MandatoryValueList.ValueSource;
end
else
{$ENDIF}
FillSampleValues(NumSampleValues);
Name:=TeeMsg_DefaultSeriesName+IntToStr(AChart.SeriesCount);
ColorEachPoint:=CBColorEach.Checked;
Marks.Style:=smsValue;
Marks.Visible:=CBShowMarksOption.Checked;
{$IFNDEF NOUSE_BDE}
if AChart is TDBChart then
TDBChart(AChart).AutoRefresh:=True;
{$ENDIF}
end;
end;
AChart.View3D:=tmpGallery.SelectedChart.View3D;
AChart.Title.Text.Clear;
{$IFNDEF NOUSE_BDE}
if Assigned(ATable) then
begin
{$IFDEF CLX}
AChart.Title.Text.Add(CBTables.Text);
{$ELSE}
if ATable is TTable then
AChart.Title.Text.Add(TTable(ATable).TableName)
else
AChart.Title.Text.Add(CBTables.Text);
{$ENDIF}
if ShowData and (AChart is TDBChart) then TDBChart(AChart).RefreshData;
end
else
{$ENDIF}
AChart.Title.Text.Add('TChart'); { <-- do not translate }
end;
procedure TTeeDlgWizard.Image1Click(Sender: TObject);
begin
TeeShowAboutBox;
end;
procedure TTeeDlgWizard.CB3DOptionClick(Sender: TObject);
begin
PreviewChart.View3D:=CB3DOption.Checked;
if CB3DOption.Checked then RG3D.ItemIndex:=1
else RG3D.ItemIndex:=0;
end;
procedure TTeeDlgWizard.CBShowLegendOptionClick(Sender: TObject);
begin
PreviewChart.Legend.Visible:=CBShowLegendOption.Checked;
end;
procedure TTeeDlgWizard.CBShowMarksOptionClick(Sender: TObject);
var t : Integer;
begin
for t:=0 to PreviewChart.SeriesCount-1 do
PreviewChart.Series[t].Marks.Visible:=CBShowMarksOption.Checked;
end;
procedure TTeeDlgWizard.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose:=(ModalResult<>mrCancel) or
(PageControl.ActivePage.PageIndex=pgStyle) or
TeeYesNo(TeeMsg_WizardSureToClose);
end;
procedure TTeeDlgWizard.HelpButtonClick(Sender: TObject);
begin
{$IFNDEF CLX}
Application.HelpJump('TeeChart_Wizard'); { <-- don't translate }
{$ENDIF}
end;
procedure TTeeDlgWizard.TryChangeFolder(const S:String);
begin
{$I-}
ChDir(S);
{$IFNDEF CLR}
if IOResult<>0 then ;
{$ENDIF}
{$I+}
end;
procedure TTeeDlgWizard.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
{$IFNDEF LINUX}
// Load last file path and url from registry
with TRegistry.Create do
try
if OpenKey(TeeMsg_WizardKey,True) then
begin
WriteString('LastFile',EFile.Text);
WriteString('LastURL',EWeb.Text);
if LastFolder<>'' then
WriteString('LastFolder',LastFolder);
end;
finally
Free;
end;
{$ENDIF}
TryChangeFolder(BackupDir);
end;
procedure TTeeDlgWizard.LabelURLClick(Sender: TObject);
begin
GotoURL(Handle,LabelURL.Caption);
end;
procedure TTeeDlgWizard.RG3DClick(Sender: TObject);
begin
tmpGallery.View3D:=RG3D.ItemIndex=1;
end;
procedure TTeeDlgWizard.tmpGallerySelectedChart(Sender: TObject);
{$IFNDEF NOUSE_BDE}
var tmp : TDataSet;
{$ENDIF}
begin
PageControl.ActivePage := PageControl.Pages[pgPreviewChart];
{$IFNDEF NOUSE_BDE}
if RGDatabase.ItemIndex=0 then
begin
{$IFDEF CLX}
tmp:=nil;
{$ELSE}
if StyleBDE then tmp:=Table1
else {$IFDEF TEEENTERPRISE}tmp:=ADOQuery{$ELSE}tmp:=nil{$ENDIF}
{$ENDIF}
end
else
tmp:=nil;
{$ENDIF}
CreatePreviewChart;
CreateSeries(Self,PreviewChart{$IFNDEF NOUSE_BDE},tmp{$ENDIF},True);
CheckPreviewOptions;
PageControl1.ActivePage:=TabPreviewChart;
RefreshButtons;
end;
procedure TTeeDlgWizard.CheckPreviewOptions;
begin
CB3DOption.Checked:=PreviewChart.View3D;
CBShowLegendOption.Checked:=PreviewChart.Legend.Visible;
CBShowMarksOption.Visible:=PreviewChart.SeriesCount>0;
CBColorEach.Visible:=PreviewChart.SeriesCount>0;
if PreviewChart.SeriesCount>0 then
begin
CBShowMarksOption.Checked:=PreviewChart.Series[0].Marks.Visible;
CBColorEach.Checked:=PreviewChart.Series[0].ColorEachPoint;
end;
end;
type
TGalleryAccess=class(TChartGalleryPanel)
{$IFDEF CLR}
private
procedure DoKeyDown(var Key: Word; Shift: TShiftState);
end
{$ENDIF}
;
{$IFDEF CLR}
procedure TGalleryAccess.DoKeyDown(var Key: Word; Shift: TShiftState);
begin
KeyDown(Key,Shift);
end;
{$ENDIF}
procedure TTeeDlgWizard.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if PageControl.ActivePage=TabSheet1 then
{$IFDEF CLR}
TGalleryAccess(tmpGallery).DoKeyDown(Key,Shift);
{$ELSE}
TGalleryAccess(tmpGallery).KeyDown(Key,Shift);
{$ENDIF}
end;
procedure TTeeDlgWizard.CBTablesChange(Sender: TObject);
begin
NextButton.Enabled:=True;
end;
procedure TTeeDlgWizard.CBAliasChange(Sender: TObject);
begin
{$IFNDEF NOUSE_BDE}
Screen.Cursor:=crHourGlass;
try
try
if StyleBDE then
{$IFNDEF CLX}
Session.GetTableNames(CBAlias.Text,'',True,False,CBTables.Items)
{$ENDIF}
else
begin
{$IFDEF TEEENTERPRISE}
if CBAlias.Items.IndexOf(CBAlias.Text)<>-1 then
ADOConn.ConnectionString:=CT_FILENAME+DataLinkDir+'\'+CBAlias.Text
else
ADOConn.ConnectionString:=CBAlias.Text;
ADOConn.GetTableNames(CBTables.Items);
{$ENDIF}
end;
except
CBAlias.Text:='';
CBTables.Clear;
end;
finally
Screen.Cursor:=crDefault;
end;
{$ENDIF}
end;
Function TeeSelectFolder(const Caption,Root:String; var Folder:String):Boolean;
Var tmpDir : {$IFDEF K3}WideString
{$ELSE}
{$IFDEF D7}
{$IFDEF CLX}WideString
{$ELSE}String
{$ENDIF}
{$ELSE}String
{$ENDIF}
{$ENDIF};
begin
tmpDir:='';
result:=SelectDirectory(Caption,Root,tmpDir);
if result then Folder:=tmpDir;
end;
procedure TTeeDlgWizard.SpeedButton1Click(Sender: TObject);
{$IFNDEF NOUSE_BDE}
Var tmpDir : String;
{$ENDIF}
begin
{$IFNDEF NOUSE_BDE}
if StyleBDE then
begin
tmpDir:=CBAlias.Text;
if not DirectoryExists(tmpDir) then tmpDir:='';
if TeeSelectFolder(TeeMsg_SelectFolder,'',tmpDir) then
begin
CBAlias.Text:=tmpDir;
CBAliasChange(Self);
end;
end
{$IFDEF TEEENTERPRISE}
else
begin
if EditConnectionString(ADOConn) then
begin
CBAlias.Text:=ADOConn.ConnectionString;
CBAliasChange(Self);
end;
end;
{$ENDIF}
{$ENDIF}
end;
procedure TTeeDlgWizard.CBDBStyleChange(Sender: TObject);
begin
if StyleBDE then
LabelAlias.Caption:=TeeMsg_BDEAlias
else
begin
{$IFDEF TEEENTERPRISE}
LabelAlias.Caption:=TeeMsg_ADOConnection;
{$ENDIF}
end;
CBAlias.Style:=csDropDown;
RefreshAlias;
end;
Procedure TTeeDlgWizard.RefreshAlias;
begin
NextButton.Enabled:=False;
CBAlias.Clear;
CBTables.Clear;
{$IFNDEF NOUSE_BDE}
if StyleBDE then
begin
{$IFNDEF CLX}
Session.GetAliasNames(CBAlias.Items);
{$ENDIF}
CBAlias.Text:=BackupDir;
end
{$IFDEF TEEENTERPRISE}
else GetDataLinkFiles(CBAlias.Items,DataLinkDir);
{$ENDIF}
{$ENDIF}
end;
Function TTeeDlgWizard.StyleBDE:Boolean;
begin
{$IFDEF TEEENTERPRISE}
result:=CBDBStyle.ItemIndex=0;
{$ELSE}
result:=True;
{$ENDIF}
end;
procedure TTeeDlgWizard.FormDestroy(Sender: TObject);
begin
{$IFNDEF NOUSE_BDE}
{$IFDEF TEEENTERPRISE}
ADOQuery.Free;
ADOConn.Free;
{$ENDIF}
{$ENDIF}
end;
procedure TTeeDlgWizard.CBColorEachClick(Sender: TObject);
var t : Integer;
begin
for t:=0 to PreviewChart.SeriesCount-1 do
PreviewChart.Series[t].ColorEachPoint:=CBColorEach.Checked;
end;
procedure TTeeDlgWizard.BBrowseClick(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
EFile.Text:=OpenDialog1.FileName;
LastFolder:=ExtractFilePath(EFile.Text);
end;
end;
procedure TTeeDlgWizard.RBFileClick(Sender: TObject);
begin
EFile.Enabled:=RBFile.Checked;
RBWeb.Checked:=not RBFile.Checked;
EWeb.Enabled:=not EFile.Enabled;
BBrowse.Enabled:=EFile.Enabled;
EFileChange(Sender);
end;
procedure TTeeDlgWizard.EFileChange(Sender: TObject);
begin
NextButton.Enabled:=True;
end;
procedure TTeeDlgWizard.CopyPreviewChart(var Chart:TCustomChart);
var Stream : TMemoryStream;
begin
Stream:=TMemoryStream.Create;
try
SaveChartToStream(PreviewChart,Stream);
Stream.Position:=0;
LoadChartFromStream(Chart,Stream);
finally
Stream.Free;
end;
end;
procedure TTeeDlgWizard.FormResize(Sender: TObject);
begin
with tmpGallery do
SetBounds(Left,Top,TabSheet1.Width-20,TabSheet1.Height-70);
with RGDatabase do
SetBounds((TabStyle.Width-Width) div 2,Top,Width,Height);
end;
procedure TTeeDlgWizard.CBSmoothClick(Sender: TObject);
begin
tmpGallery.Smooth:=CBSmooth.Checked;
end;
procedure TTeeDlgWizard.BThemeClick(Sender: TObject);
begin
if Assigned(TeeThemeSelectorHook) then
begin
if PreviewChart.SeriesCount=0 then
CreateSeries(Self,PreviewChart,{$IFNDEF NOUSE_BDE}nil,{$ENDIF}True);
ThemeClass:=TeeThemeSelectorHook(PreviewChart);
tmpGallery.UseTheme(ThemeClass);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -