You've already forked lazarus-ccr
LazStats: Add toolbars to XBarUnit and RChartUnit
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7652 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -227,13 +227,13 @@ object RChartFrm: TRChartFrm
|
|||||||
Height = 460
|
Height = 460
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 482
|
Width = 482
|
||||||
ActivePage = ReportPage
|
ActivePage = ChartPage
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BorderSpacing.Left = 2
|
BorderSpacing.Left = 2
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Right = 8
|
BorderSpacing.Right = 8
|
||||||
BorderSpacing.Bottom = 8
|
BorderSpacing.Bottom = 8
|
||||||
TabIndex = 0
|
TabIndex = 1
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object ReportPage: TTabSheet
|
object ReportPage: TTabSheet
|
||||||
Caption = 'Report'
|
Caption = 'Report'
|
||||||
@@ -254,6 +254,40 @@ object RChartFrm: TRChartFrm
|
|||||||
end
|
end
|
||||||
object ChartPage: TTabSheet
|
object ChartPage: TTabSheet
|
||||||
Caption = 'Chart'
|
Caption = 'Chart'
|
||||||
|
ClientHeight = 432
|
||||||
|
ClientWidth = 474
|
||||||
|
object ToolBar1: TToolBar
|
||||||
|
Left = 444
|
||||||
|
Height = 420
|
||||||
|
Top = 6
|
||||||
|
Width = 24
|
||||||
|
Align = alRight
|
||||||
|
AutoSize = True
|
||||||
|
BorderSpacing.Top = 6
|
||||||
|
BorderSpacing.Right = 6
|
||||||
|
BorderSpacing.Bottom = 6
|
||||||
|
Caption = 'ToolBar1'
|
||||||
|
EdgeBorders = []
|
||||||
|
Images = MainDataModule.ImageList
|
||||||
|
TabOrder = 0
|
||||||
|
Transparent = True
|
||||||
|
object tbSave: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Hint = 'Save chart to file'
|
||||||
|
Top = 0
|
||||||
|
Caption = 'tbSave'
|
||||||
|
ImageIndex = 4
|
||||||
|
OnClick = tbSaveClick
|
||||||
|
end
|
||||||
|
object tbPrint: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Hint = 'Print chart'
|
||||||
|
Top = 22
|
||||||
|
Caption = 'tbPrint'
|
||||||
|
ImageIndex = 5
|
||||||
|
OnClick = tbPrintClick
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -38,6 +38,9 @@ type
|
|||||||
CloseBtn: TButton;
|
CloseBtn: TButton;
|
||||||
MeasEdit: TEdit;
|
MeasEdit: TEdit;
|
||||||
GroupEdit: TEdit;
|
GroupEdit: TEdit;
|
||||||
|
tbPrint: TToolButton;
|
||||||
|
tbSave: TToolButton;
|
||||||
|
ToolBar1: TToolBar;
|
||||||
VarListLabel: TLabel;
|
VarListLabel: TLabel;
|
||||||
GroupLabel: TLabel;
|
GroupLabel: TLabel;
|
||||||
MeasLabel: TLabel;
|
MeasLabel: TLabel;
|
||||||
@@ -51,6 +54,8 @@ type
|
|||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
procedure HelpBtnClick(Sender: TObject);
|
procedure HelpBtnClick(Sender: TObject);
|
||||||
procedure ResetBtnClick(Sender: TObject);
|
procedure ResetBtnClick(Sender: TObject);
|
||||||
|
procedure tbPrintClick(Sender: TObject);
|
||||||
|
procedure tbSaveClick(Sender: TObject);
|
||||||
procedure VarListClick(Sender: TObject);
|
procedure VarListClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ private declarations }
|
{ private declarations }
|
||||||
@@ -73,90 +78,9 @@ implementation
|
|||||||
uses
|
uses
|
||||||
Math, Utils;
|
Math, Utils;
|
||||||
|
|
||||||
|
|
||||||
{ TRChartFrm }
|
{ TRChartFrm }
|
||||||
|
|
||||||
procedure TRChartFrm.ResetBtnClick(Sender: TObject);
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
begin
|
|
||||||
VarList.Clear;
|
|
||||||
GroupEdit.Text := '';
|
|
||||||
MeasEdit.Text := '';
|
|
||||||
for i := 1 to NoVariables do
|
|
||||||
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
|
|
||||||
{$IFDEF USE_TACHART}
|
|
||||||
FChartFrame.Clear;
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TRChartFrm.VarListClick(Sender: TObject);
|
|
||||||
var
|
|
||||||
index: integer;
|
|
||||||
begin
|
|
||||||
index := VarList.ItemIndex;
|
|
||||||
if index > -1 then
|
|
||||||
begin
|
|
||||||
if GroupEdit.Text = '' then
|
|
||||||
GroupEdit.Text := VarList.Items[index]
|
|
||||||
else
|
|
||||||
MeasEdit.Text := VarList.Items[index];
|
|
||||||
VarList.Items.Delete(index);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TRChartFrm.FormActivate(Sender: TObject);
|
|
||||||
var
|
|
||||||
w: Integer;
|
|
||||||
begin
|
|
||||||
w := MaxValue([HelpBtn.Width, ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
|
|
||||||
HelpBtn.Constraints.MinWidth := w;
|
|
||||||
ResetBtn.Constraints.MinWidth := w;
|
|
||||||
ComputeBtn.Constraints.MinWidth := w;
|
|
||||||
CloseBtn.Constraints.MinWidth := w;
|
|
||||||
|
|
||||||
SpecsPanel.Constraints.MinWidth := Max(
|
|
||||||
VarListLabel.Width + MeasLabel.Width,
|
|
||||||
CloseBtn.Left + CloseBtn.Width - HelpBtn.Left + HelpBtn.BorderSpacing.Left
|
|
||||||
);
|
|
||||||
|
|
||||||
Constraints.MinHeight := MeasEdit.Top + MeasEdit.Height + ButtonBevel.Height + ButtonPanel.Height + 2*ButtonPanel.BorderSpacing.Bottom;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TRChartFrm.FormCreate(Sender: TObject);
|
|
||||||
begin
|
|
||||||
Assert(OS3MainFrm <> nil);
|
|
||||||
{$IFDEF USE_TACHART}
|
|
||||||
FChartFrame := TChartFrame.Create(self);
|
|
||||||
FChartFrame.Parent := ChartPage;
|
|
||||||
FChartFrame.Align := alClient;
|
|
||||||
FChartFrame.BorderSpacing.Around := Scale96ToFont(8);
|
|
||||||
FChartFrame.Chart.Legend.SymbolWidth := Scale96ToFont(30);
|
|
||||||
FChartFrame.Chart.Legend.Alignment := laBottomCenter;
|
|
||||||
FChartFrame.Chart.Legend.ColumnCount := 3;
|
|
||||||
with FChartFrame.Chart.AxisList.Add do
|
|
||||||
begin
|
|
||||||
Alignment := calRight;
|
|
||||||
Marks.Source := TListChartSource.Create(self);
|
|
||||||
Marks.Style := smsLabel;
|
|
||||||
end;
|
|
||||||
{$ELSE}
|
|
||||||
if BlankFrm = nil then
|
|
||||||
Application.CreateForm(TBlankFrm, BlankFrm);
|
|
||||||
{$ENDIF}
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TRChartFrm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
ResetBtnClick(self);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TRChartFrm.HelpBtnClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if ContextHelpForm = nil then
|
|
||||||
Application.CreateForm(TContextHelpForm, ContextHelpForm);
|
|
||||||
ContextHelpForm.HelpMessage((Sender as TButton).tag);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TRChartFrm.ComputeBtnClick(Sender: TObject);
|
procedure TRChartFrm.ComputeBtnClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
i, j, GrpVar, MeasVar, grpsize : integer;
|
i, j, GrpVar, MeasVar, grpsize : integer;
|
||||||
@@ -331,6 +255,64 @@ begin
|
|||||||
means := nil;
|
means := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.FormActivate(Sender: TObject);
|
||||||
|
var
|
||||||
|
w: Integer;
|
||||||
|
begin
|
||||||
|
w := MaxValue([HelpBtn.Width, ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
|
||||||
|
HelpBtn.Constraints.MinWidth := w;
|
||||||
|
ResetBtn.Constraints.MinWidth := w;
|
||||||
|
ComputeBtn.Constraints.MinWidth := w;
|
||||||
|
CloseBtn.Constraints.MinWidth := w;
|
||||||
|
|
||||||
|
SpecsPanel.Constraints.MinWidth := Max(
|
||||||
|
VarListLabel.Width + MeasLabel.Width,
|
||||||
|
CloseBtn.Left + CloseBtn.Width - HelpBtn.Left + HelpBtn.BorderSpacing.Left
|
||||||
|
);
|
||||||
|
|
||||||
|
Constraints.MinHeight := MeasEdit.Top + MeasEdit.Height + ButtonBevel.Height + ButtonPanel.Height + 2*ButtonPanel.BorderSpacing.Bottom;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Assert(OS3MainFrm <> nil);
|
||||||
|
{$IFDEF USE_TACHART}
|
||||||
|
FChartFrame := TChartFrame.Create(self);
|
||||||
|
FChartFrame.Parent := ChartPage;
|
||||||
|
FChartFrame.Align := alClient;
|
||||||
|
FChartFrame.BorderSpacing.Around := Scale96ToFont(8);
|
||||||
|
FChartFrame.Chart.Legend.SymbolWidth := Scale96ToFont(30);
|
||||||
|
FChartFrame.Chart.Legend.Alignment := laBottomCenter;
|
||||||
|
FChartFrame.Chart.Legend.ColumnCount := 3;
|
||||||
|
with FChartFrame.Chart.AxisList.Add do
|
||||||
|
begin
|
||||||
|
Alignment := calRight;
|
||||||
|
Marks.Source := TListChartSource.Create(self);
|
||||||
|
Marks.Style := smsLabel;
|
||||||
|
end;
|
||||||
|
{$ELSE}
|
||||||
|
if BlankFrm = nil then
|
||||||
|
Application.CreateForm(TBlankFrm, BlankFrm);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.FormShow(Sender: TObject);
|
||||||
|
begin
|
||||||
|
ResetBtnClick(self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.HelpBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if ContextHelpForm = nil then
|
||||||
|
Application.CreateForm(TContextHelpForm, ContextHelpForm);
|
||||||
|
ContextHelpForm.HelpMessage((Sender as TButton).tag);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TRChartFrm.PlotMeans(const Groups: StrDyneVec; const Means: DblDyneVec;
|
procedure TRChartFrm.PlotMeans(const Groups: StrDyneVec; const Means: DblDyneVec;
|
||||||
UCL, LCL, GrandMean: double);
|
UCL, LCL, GrandMean: double);
|
||||||
const
|
const
|
||||||
@@ -488,5 +470,52 @@ begin
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.ResetBtnClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
begin
|
||||||
|
VarList.Clear;
|
||||||
|
GroupEdit.Text := '';
|
||||||
|
MeasEdit.Text := '';
|
||||||
|
for i := 1 to NoVariables do
|
||||||
|
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
|
||||||
|
{$IFDEF USE_TACHART}
|
||||||
|
FChartFrame.Clear;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.tbPrintClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
{$IFDEF USE_TACHART}
|
||||||
|
FChartFrame.Print;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.tbSaveClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
{$IFDEF USE_TACHART}
|
||||||
|
FChartFrame.Save;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRChartFrm.VarListClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
index: integer;
|
||||||
|
begin
|
||||||
|
index := VarList.ItemIndex;
|
||||||
|
if index > -1 then
|
||||||
|
begin
|
||||||
|
if GroupEdit.Text = '' then
|
||||||
|
GroupEdit.Text := VarList.Items[index]
|
||||||
|
else
|
||||||
|
MeasEdit.Text := VarList.Items[index];
|
||||||
|
VarList.Items.Delete(index);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@@ -410,6 +410,40 @@ object XBarFrm: TXBarFrm
|
|||||||
end
|
end
|
||||||
object ChartPage: TTabSheet
|
object ChartPage: TTabSheet
|
||||||
Caption = 'Chart'
|
Caption = 'Chart'
|
||||||
|
ClientHeight = 386
|
||||||
|
ClientWidth = 544
|
||||||
|
object ToolBar1: TToolBar
|
||||||
|
Left = 514
|
||||||
|
Height = 374
|
||||||
|
Top = 6
|
||||||
|
Width = 24
|
||||||
|
Align = alRight
|
||||||
|
AutoSize = True
|
||||||
|
BorderSpacing.Top = 6
|
||||||
|
BorderSpacing.Right = 6
|
||||||
|
BorderSpacing.Bottom = 6
|
||||||
|
Caption = 'ToolBar1'
|
||||||
|
EdgeBorders = []
|
||||||
|
Images = MainDataModule.ImageList
|
||||||
|
TabOrder = 0
|
||||||
|
Transparent = True
|
||||||
|
object tbSave: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Hint = 'Save chart to file'
|
||||||
|
Top = 0
|
||||||
|
Caption = 'tbSave'
|
||||||
|
ImageIndex = 4
|
||||||
|
OnClick = tbSaveClick
|
||||||
|
end
|
||||||
|
object tbPrint: TToolButton
|
||||||
|
Left = 1
|
||||||
|
Hint = 'Print chart'
|
||||||
|
Top = 22
|
||||||
|
Caption = 'tbPrint'
|
||||||
|
ImageIndex = 5
|
||||||
|
OnClick = tbPrintClick
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -41,6 +41,9 @@ type
|
|||||||
Splitter1: TSplitter;
|
Splitter1: TSplitter;
|
||||||
ReportPage: TTabSheet;
|
ReportPage: TTabSheet;
|
||||||
ChartPage: TTabSheet;
|
ChartPage: TTabSheet;
|
||||||
|
tbPrint: TToolButton;
|
||||||
|
tbSave: TToolButton;
|
||||||
|
ToolBar1: TToolBar;
|
||||||
UpSpecEdit: TEdit;
|
UpSpecEdit: TEdit;
|
||||||
LowSpecEdit: TEdit;
|
LowSpecEdit: TEdit;
|
||||||
TargetSpecEdit: TEdit;
|
TargetSpecEdit: TEdit;
|
||||||
@@ -62,6 +65,8 @@ type
|
|||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
procedure HelpBtnClick(Sender: TObject);
|
procedure HelpBtnClick(Sender: TObject);
|
||||||
procedure ResetBtnClick(Sender: TObject);
|
procedure ResetBtnClick(Sender: TObject);
|
||||||
|
procedure tbPrintClick(Sender: TObject);
|
||||||
|
procedure tbSaveClick(Sender: TObject);
|
||||||
procedure VarListClick(Sender: TObject);
|
procedure VarListClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ private declarations }
|
{ private declarations }
|
||||||
@@ -108,6 +113,16 @@ begin
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TXBarFrm.tbPrintClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FChartFrame.Print;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TXBarFrm.tbSaveClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FChartFrame.Save;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TXBarFrm.VarListClick(Sender: TObject);
|
procedure TXBarFrm.VarListClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
index: integer;
|
index: integer;
|
||||||
@@ -343,7 +358,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TXBarFrm.PlotMeans(const Groups: StrDyneVec; const Means, StdDevs: DblDyneVec;
|
procedure TXBarFrm.PlotMeans(const Groups: StrDyneVec; const Means, StdDevs: DblDyneVec;
|
||||||
UCL, LCL, GrandMean: double; TargetSpec, LowerSpec, UpperSpec: double);
|
UCL, LCL, GrandMean, TargetSpec, LowerSpec, UpperSpec: double);
|
||||||
const
|
const
|
||||||
TARGET_COLOR = clBlue;
|
TARGET_COLOR = clBlue;
|
||||||
CL_COLOR = clRed;
|
CL_COLOR = clRed;
|
||||||
|
@@ -308,12 +308,14 @@ object DistribFrm: TDistribFrm
|
|||||||
AnchorSideTop.Control = Owner
|
AnchorSideTop.Control = Owner
|
||||||
AnchorSideRight.Control = Owner
|
AnchorSideRight.Control = Owner
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
|
AnchorSideBottom.Control = Owner
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
Left = 918
|
Left = 918
|
||||||
Height = 66
|
Height = 420
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 24
|
Width = 24
|
||||||
Align = alNone
|
Align = alNone
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight, akBottom]
|
||||||
AutoSize = True
|
AutoSize = True
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
BorderSpacing.Right = 6
|
BorderSpacing.Right = 6
|
||||||
|
Reference in New Issue
Block a user