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
|
||||
Top = 8
|
||||
Width = 482
|
||||
ActivePage = ReportPage
|
||||
ActivePage = ChartPage
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 2
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
TabIndex = 0
|
||||
TabIndex = 1
|
||||
TabOrder = 2
|
||||
object ReportPage: TTabSheet
|
||||
Caption = 'Report'
|
||||
@ -254,6 +254,40 @@ object RChartFrm: TRChartFrm
|
||||
end
|
||||
object ChartPage: TTabSheet
|
||||
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
|
||||
|
@ -38,6 +38,9 @@ type
|
||||
CloseBtn: TButton;
|
||||
MeasEdit: TEdit;
|
||||
GroupEdit: TEdit;
|
||||
tbPrint: TToolButton;
|
||||
tbSave: TToolButton;
|
||||
ToolBar1: TToolBar;
|
||||
VarListLabel: TLabel;
|
||||
GroupLabel: TLabel;
|
||||
MeasLabel: TLabel;
|
||||
@ -51,6 +54,8 @@ type
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure HelpBtnClick(Sender: TObject);
|
||||
procedure ResetBtnClick(Sender: TObject);
|
||||
procedure tbPrintClick(Sender: TObject);
|
||||
procedure tbSaveClick(Sender: TObject);
|
||||
procedure VarListClick(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
@ -73,90 +78,9 @@ implementation
|
||||
uses
|
||||
Math, Utils;
|
||||
|
||||
|
||||
{ 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);
|
||||
var
|
||||
i, j, GrpVar, MeasVar, grpsize : integer;
|
||||
@ -331,6 +255,64 @@ begin
|
||||
means := nil;
|
||||
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;
|
||||
UCL, LCL, GrandMean: double);
|
||||
const
|
||||
@ -488,5 +470,52 @@ begin
|
||||
{$ENDIF}
|
||||
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.
|
||||
|
||||
|
@ -410,6 +410,40 @@ object XBarFrm: TXBarFrm
|
||||
end
|
||||
object ChartPage: TTabSheet
|
||||
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
|
||||
|
@ -41,6 +41,9 @@ type
|
||||
Splitter1: TSplitter;
|
||||
ReportPage: TTabSheet;
|
||||
ChartPage: TTabSheet;
|
||||
tbPrint: TToolButton;
|
||||
tbSave: TToolButton;
|
||||
ToolBar1: TToolBar;
|
||||
UpSpecEdit: TEdit;
|
||||
LowSpecEdit: TEdit;
|
||||
TargetSpecEdit: TEdit;
|
||||
@ -62,6 +65,8 @@ type
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure HelpBtnClick(Sender: TObject);
|
||||
procedure ResetBtnClick(Sender: TObject);
|
||||
procedure tbPrintClick(Sender: TObject);
|
||||
procedure tbSaveClick(Sender: TObject);
|
||||
procedure VarListClick(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
@ -108,6 +113,16 @@ begin
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure TXBarFrm.tbPrintClick(Sender: TObject);
|
||||
begin
|
||||
FChartFrame.Print;
|
||||
end;
|
||||
|
||||
procedure TXBarFrm.tbSaveClick(Sender: TObject);
|
||||
begin
|
||||
FChartFrame.Save;
|
||||
end;
|
||||
|
||||
procedure TXBarFrm.VarListClick(Sender: TObject);
|
||||
var
|
||||
index: integer;
|
||||
@ -343,7 +358,7 @@ begin
|
||||
end;
|
||||
|
||||
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
|
||||
TARGET_COLOR = clBlue;
|
||||
CL_COLOR = clRed;
|
||||
|
@ -308,12 +308,14 @@ object DistribFrm: TDistribFrm
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 918
|
||||
Height = 66
|
||||
Height = 420
|
||||
Top = 8
|
||||
Width = 24
|
||||
Align = alNone
|
||||
Anchors = [akTop, akRight]
|
||||
Anchors = [akTop, akRight, akBottom]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 6
|
||||
|
Reference in New Issue
Block a user