You've already forked lazarus-ccr
LazStats: Avoid non-modal forms being reset with every menu click.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7673 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -11,7 +11,6 @@ object BoxPlotFrm: TBoxPlotFrm
|
|||||||
ClientWidth = 361
|
ClientWidth = 361
|
||||||
OnActivate = FormActivate
|
OnActivate = FormActivate
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnShow = FormShow
|
|
||||||
Position = poMainFormCenter
|
Position = poMainFormCenter
|
||||||
LCLVersion = '2.1.0.0'
|
LCLVersion = '2.1.0.0'
|
||||||
object CloseBtn: TButton
|
object CloseBtn: TButton
|
||||||
|
@ -35,7 +35,6 @@ type
|
|||||||
procedure ComputeBtnClick(Sender: TObject);
|
procedure ComputeBtnClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure HelpBtnClick(Sender: TObject);
|
procedure HelpBtnClick(Sender: TObject);
|
||||||
procedure ResetBtnClick(Sender: TObject);
|
procedure ResetBtnClick(Sender: TObject);
|
||||||
procedure VarListClick(Sender: TObject);
|
procedure VarListClick(Sender: TObject);
|
||||||
@ -53,6 +52,7 @@ type
|
|||||||
|
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
|
procedure Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -77,7 +77,7 @@ const
|
|||||||
|
|
||||||
{ TBoxPlotFrm }
|
{ TBoxPlotFrm }
|
||||||
|
|
||||||
procedure TBoxPlotFrm.ResetBtnClick(Sender: TObject);
|
procedure TBoxPlotFrm.Reset;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
@ -89,6 +89,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TBoxPlotFrm.ResetBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Reset;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TBoxPlotFrm.VarListClick(Sender: TObject);
|
procedure TBoxPlotFrm.VarListClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
index: integer;
|
index: integer;
|
||||||
@ -365,12 +370,7 @@ end;
|
|||||||
procedure TBoxPlotFrm.FormCreate(Sender: TObject);
|
procedure TBoxPlotFrm.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Assert(OS3MainFrm <> nil);
|
Assert(OS3MainFrm <> nil);
|
||||||
end;
|
Reset;
|
||||||
|
|
||||||
|
|
||||||
procedure TBoxPlotFrm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
ResetBtnClick(self);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ type
|
|||||||
procedure ComputeBtnClick(Sender: TObject);
|
procedure ComputeBtnClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure HelpBtnClick(Sender: TObject);
|
procedure HelpBtnClick(Sender: TObject);
|
||||||
procedure IDInBtnClick(Sender: TObject);
|
procedure IDInBtnClick(Sender: TObject);
|
||||||
procedure IDOutBtnClick(Sender: TObject);
|
procedure IDOutBtnClick(Sender: TObject);
|
||||||
@ -74,6 +73,7 @@ type
|
|||||||
procedure UpdateBtnStates;
|
procedure UpdateBtnStates;
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
|
procedure Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -392,12 +392,7 @@ procedure TBubbleForm.FormCreate(Sender: TObject);
|
|||||||
begin
|
begin
|
||||||
Assert(OS3MainFrm <> nil);
|
Assert(OS3MainFrm <> nil);
|
||||||
if DictionaryFrm = nil then Application.CreateForm(TDictionaryFrm, DictionaryFrm);
|
if DictionaryFrm = nil then Application.CreateForm(TDictionaryFrm, DictionaryFrm);
|
||||||
end;
|
Reset;
|
||||||
|
|
||||||
|
|
||||||
procedure TBubbleForm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
ResetBtnClick(self);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -619,7 +614,7 @@ end;
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
procedure TBubbleForm.ResetBtnClick(Sender: TObject);
|
procedure TBubbleForm.Reset;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
@ -634,6 +629,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TBubbleForm.ResetBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Reset;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TBubbleForm.SizeInBtnClick(Sender: TObject);
|
procedure TBubbleForm.SizeInBtnClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
|
@ -10,7 +10,6 @@ object DescriptiveFrm: TDescriptiveFrm
|
|||||||
ClientWidth = 900
|
ClientWidth = 900
|
||||||
OnActivate = FormActivate
|
OnActivate = FormActivate
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnShow = FormShow
|
|
||||||
Position = poMainFormCenter
|
Position = poMainFormCenter
|
||||||
LCLVersion = '2.1.0.0'
|
LCLVersion = '2.1.0.0'
|
||||||
object ReportPanel: TPanel
|
object ReportPanel: TPanel
|
||||||
|
@ -41,7 +41,6 @@ type
|
|||||||
procedure ComputeBtnClick(Sender: TObject);
|
procedure ComputeBtnClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure HelpBtnClick(Sender: TObject);
|
procedure HelpBtnClick(Sender: TObject);
|
||||||
procedure InBtnClick(Sender: TObject);
|
procedure InBtnClick(Sender: TObject);
|
||||||
procedure OutBtnClick(Sender: TObject);
|
procedure OutBtnClick(Sender: TObject);
|
||||||
@ -58,6 +57,7 @@ type
|
|||||||
|
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
|
procedure Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -120,12 +120,8 @@ begin
|
|||||||
FReportFrame.Align := alClient;
|
FReportFrame.Align := alClient;
|
||||||
FReportFrame.ReportToolBar.Align := alRight;
|
FReportFrame.ReportToolBar.Align := alRight;
|
||||||
FReportFrame.ReportToolbar.EdgeBorders := [];
|
FReportFrame.ReportToolbar.EdgeBorders := [];
|
||||||
end;
|
|
||||||
|
|
||||||
|
Reset;
|
||||||
procedure TDescriptiveFrm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
ResetBtnClick(self);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -449,7 +445,7 @@ begin
|
|||||||
UpdateBtnStates;
|
UpdateBtnStates;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDescriptiveFrm.ResetBtnClick(Sender: TObject);
|
procedure TDescriptiveFrm.Reset;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
@ -462,6 +458,11 @@ begin
|
|||||||
FReportFrame.Clear;
|
FReportFrame.Clear;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TDescriptiveFrm.ResetBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Reset;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TDescriptiveFrm.UpdateBtnStates;
|
procedure TDescriptiveFrm.UpdateBtnStates;
|
||||||
var
|
var
|
||||||
lSelected: Boolean;
|
lSelected: Boolean;
|
||||||
|
@ -48,7 +48,6 @@ type
|
|||||||
procedure ComputeBtnClick(Sender: TObject);
|
procedure ComputeBtnClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure GroupInBtnClick(Sender: TObject);
|
procedure GroupInBtnClick(Sender: TObject);
|
||||||
procedure GroupOutBtnClick(Sender: TObject);
|
procedure GroupOutBtnClick(Sender: TObject);
|
||||||
procedure HelpBtnClick(Sender: TObject);
|
procedure HelpBtnClick(Sender: TObject);
|
||||||
@ -71,6 +70,7 @@ type
|
|||||||
|
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
|
procedure Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -92,7 +92,7 @@ uses
|
|||||||
|
|
||||||
{ TMultXvsYFrm }
|
{ TMultXvsYFrm }
|
||||||
|
|
||||||
procedure TMultXvsYFrm.ResetBtnClick(Sender: TObject);
|
procedure TMultXvsYFrm.Reset;
|
||||||
var
|
var
|
||||||
i : integer;
|
i : integer;
|
||||||
begin
|
begin
|
||||||
@ -108,6 +108,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TMultXvsYFrm.ResetBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Reset;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TMultXvsYFrm.VarListSelectionChange(Sender: TObject; User: boolean);
|
procedure TMultXvsYFrm.VarListSelectionChange(Sender: TObject; User: boolean);
|
||||||
begin
|
begin
|
||||||
UpdateBtnStates;
|
UpdateBtnStates;
|
||||||
@ -293,12 +299,7 @@ procedure TMultXvsYFrm.FormCreate(Sender: TObject);
|
|||||||
begin
|
begin
|
||||||
Assert(OS3MainFrm <> nil);
|
Assert(OS3MainFrm <> nil);
|
||||||
if DictionaryFrm = nil then Application.CreateForm(TDictionaryFrm, DictionaryFrm);
|
if DictionaryFrm = nil then Application.CreateForm(TDictionaryFrm, DictionaryFrm);
|
||||||
end;
|
Reset;
|
||||||
|
|
||||||
|
|
||||||
procedure TMultXvsYFrm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
ResetBtnClick(self);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,7 +11,6 @@ object PlotXYFrm: TPlotXYFrm
|
|||||||
ClientWidth = 490
|
ClientWidth = 490
|
||||||
OnActivate = FormActivate
|
OnActivate = FormActivate
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnShow = FormShow
|
|
||||||
Position = poMainFormCenter
|
Position = poMainFormCenter
|
||||||
LCLVersion = '2.1.0.0'
|
LCLVersion = '2.1.0.0'
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
|
@ -41,7 +41,6 @@ type
|
|||||||
procedure ComputeBtnClick(Sender: TObject);
|
procedure ComputeBtnClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure ResetBtnClick(Sender: TObject);
|
procedure ResetBtnClick(Sender: TObject);
|
||||||
procedure VarListSelectionChange(Sender: TObject; User: boolean);
|
procedure VarListSelectionChange(Sender: TObject; User: boolean);
|
||||||
procedure XinBtnClick(Sender: TObject);
|
procedure XinBtnClick(Sender: TObject);
|
||||||
@ -64,6 +63,7 @@ type
|
|||||||
Xcol,Ycol: Integer): Boolean;
|
Xcol,Ycol: Integer): Boolean;
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
|
procedure Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -85,7 +85,7 @@ uses
|
|||||||
|
|
||||||
{ TPlotXYFrm }
|
{ TPlotXYFrm }
|
||||||
|
|
||||||
procedure TPlotXYFrm.ResetBtnClick(Sender: TObject);
|
procedure TPlotXYfrm.Reset;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
@ -102,6 +102,13 @@ begin
|
|||||||
UpdateBtnStates;
|
UpdateBtnStates;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TPlotXYFrm.ResetBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Reset;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TPlotXYFrm.XinBtnClick(Sender: TObject);
|
procedure TPlotXYFrm.XinBtnClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
index: integer;
|
index: integer;
|
||||||
@ -148,11 +155,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPlotXYFrm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
ResetBtnClick(self);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TPlotXYFrm.ComputeBtnClick(Sender: TObject);
|
procedure TPlotXYFrm.ComputeBtnClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
Xmin, Xmax, Ymin, Ymax, SSx, SSY, t, DF: double;
|
Xmin, Xmax, Ymin, Ymax, SSx, SSY, t, DF: double;
|
||||||
@ -341,6 +343,7 @@ end;
|
|||||||
procedure TPlotXYFrm.FormCreate(Sender: TObject);
|
procedure TPlotXYFrm.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Assert(OS3MainFrm <> nil);
|
Assert(OS3MainFrm <> nil);
|
||||||
|
Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ type
|
|||||||
procedure UpdateBtnStates;
|
procedure UpdateBtnStates;
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
|
procedure Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -81,7 +82,7 @@ uses
|
|||||||
|
|
||||||
{ TXvsMultYForm }
|
{ TXvsMultYForm }
|
||||||
|
|
||||||
procedure TXvsMultYForm.ResetBtnClick(Sender: TObject);
|
procedure TXvsMultYForm.Reset;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
@ -97,6 +98,11 @@ begin
|
|||||||
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
|
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TXvsMultYForm.ResetBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Reset;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TXvsMultYForm.VarListSelectionChange(Sender: TObject; User: boolean);
|
procedure TXvsMultYForm.VarListSelectionChange(Sender: TObject; User: boolean);
|
||||||
begin
|
begin
|
||||||
UpdateBtnStates;
|
UpdateBtnStates;
|
||||||
@ -269,6 +275,7 @@ end;
|
|||||||
procedure TXvsMultYForm.FormCreate(Sender: TObject);
|
procedure TXvsMultYForm.FormCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Assert(OS3MainFrm <> nil);
|
Assert(OS3MainFrm <> nil);
|
||||||
|
Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ object BasicSPCForm: TBasicSPCForm
|
|||||||
ClientWidth = 927
|
ClientWidth = 927
|
||||||
OnActivate = FormActivate
|
OnActivate = FormActivate
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnShow = FormShow
|
Position = poMainFormCenter
|
||||||
LCLVersion = '2.1.0.0'
|
LCLVersion = '2.1.0.0'
|
||||||
object SpecsPanel: TPanel
|
object SpecsPanel: TPanel
|
||||||
Left = 8
|
Left = 8
|
||||||
|
@ -40,7 +40,6 @@ type
|
|||||||
procedure ComputeBtnClick(Sender: TObject);
|
procedure ComputeBtnClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure GroupInBtnClick(Sender: TObject);
|
procedure GroupInBtnClick(Sender: TObject);
|
||||||
procedure GroupOutBtnClick(Sender: TObject);
|
procedure GroupOutBtnClick(Sender: TObject);
|
||||||
procedure HelpBtnClick(Sender: TObject);
|
procedure HelpBtnClick(Sender: TObject);
|
||||||
@ -181,11 +180,7 @@ begin
|
|||||||
Marks.Source := TListChartSource.Create(self);
|
Marks.Source := TListChartSource.Create(self);
|
||||||
Marks.Style := smsLabel;
|
Marks.Style := smsLabel;
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure TBasicSPCForm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
Reset;
|
Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -444,75 +444,75 @@ object OS3MainFrm: TOS3MainFrm
|
|||||||
end
|
end
|
||||||
object mnuAnalysis: TMenuItem
|
object mnuAnalysis: TMenuItem
|
||||||
Caption = 'Analyses'
|
Caption = 'Analyses'
|
||||||
object MenuItem32: TMenuItem
|
object mnuAnalysisDescr: TMenuItem
|
||||||
Caption = 'Descriptive'
|
Caption = 'Descriptive'
|
||||||
object Distributions: TMenuItem
|
object mnuAnalysisDescr_DistribStats: TMenuItem
|
||||||
Caption = 'Distribution Statistics'
|
Caption = 'Distribution Statistics'
|
||||||
OnClick = DistributionsClick
|
OnClick = mnuAnalysisDescr_DistribStatsClick
|
||||||
end
|
end
|
||||||
object FreqAnal: TMenuItem
|
object mnuAnalysisDescr_Freq: TMenuItem
|
||||||
Caption = 'Frequency Analysis'
|
Caption = 'Frequency Analysis'
|
||||||
OnClick = FreqAnalClick
|
OnClick = mnuAnalysisDescr_FreqClick
|
||||||
end
|
end
|
||||||
object GrpFreq: TMenuItem
|
object mnuAnalysisDescr_GrpFreq: TMenuItem
|
||||||
Caption = 'Plot Group Frequencies'
|
Caption = 'Plot Group Frequencies'
|
||||||
OnClick = GrpFreqClick
|
OnClick = mnuAnalysisDescr_GrpFreqClick
|
||||||
end
|
end
|
||||||
object CrossTabs: TMenuItem
|
object mnuAnalysisDescr_CrossTabs: TMenuItem
|
||||||
Caption = 'Cross Tabulation'
|
Caption = 'Cross Tabulation'
|
||||||
OnClick = CrossTabsClick
|
OnClick = mnuAnalysisDescr_CrossTabsClick
|
||||||
end
|
end
|
||||||
object Breakdown: TMenuItem
|
object mnuAnalysisDescr_Breakdown: TMenuItem
|
||||||
Caption = 'Breakdown'
|
Caption = 'mnuAnalysisDescr_Breakdown'
|
||||||
OnClick = BreakdownClick
|
OnClick = mnuAnalysisDescr_BreakdownClick
|
||||||
end
|
end
|
||||||
object BoxPlot: TMenuItem
|
object mnuAnalysisDescr_BoxPlot: TMenuItem
|
||||||
Caption = 'Box Plot'
|
Caption = 'Box Plot'
|
||||||
OnClick = BoxPlotClick
|
OnClick = mnuAnalysisDescr_BoxPlotClick
|
||||||
end
|
end
|
||||||
object NormalityTests: TMenuItem
|
object mnuAnalysisDescr_Normality: TMenuItem
|
||||||
Caption = 'Normality Tests'
|
Caption = 'Normality Tests'
|
||||||
OnClick = NormalityTestsClick
|
OnClick = mnuAnalysisDescr_NormalityClick
|
||||||
end
|
end
|
||||||
object ThreeDRotate: TMenuItem
|
object mnuAnalysisDescr_ThreeDRotate: TMenuItem
|
||||||
Caption = '3-D Variable Rotation'
|
Caption = '3-D Variable Rotation'
|
||||||
OnClick = ThreeDRotateClick
|
OnClick = mnuAnalysisDescr_ThreeDRotateClick
|
||||||
end
|
end
|
||||||
object PlotXvsY: TMenuItem
|
object mnuAnalysisDescr_PlotXvsY: TMenuItem
|
||||||
Caption = 'Plot X vs Y'
|
Caption = 'Plot X vs Y'
|
||||||
OnClick = PlotXvsYClick
|
OnClick = mnuAnalysisDescr_PlotXvsYClick
|
||||||
end
|
end
|
||||||
object BubblePlot: TMenuItem
|
object mnuAnalysisDescr_BubblePlot: TMenuItem
|
||||||
Caption = 'Repeated Measures Bubble Plot'
|
Caption = 'Repeated Measures Bubble Plot'
|
||||||
OnClick = BubblePlotClick
|
OnClick = mnuAnalysisDescr_BubblePlotClick
|
||||||
end
|
end
|
||||||
object StemLeaf: TMenuItem
|
object mnuAnalysisDescr_StemLeaf: TMenuItem
|
||||||
Caption = 'Stem and Leaf Plot'
|
Caption = 'Stem and Leaf Plot'
|
||||||
OnClick = StemLeafClick
|
OnClick = mnuAnalysisDescr_StemLeafClick
|
||||||
end
|
end
|
||||||
object MultXvsY: TMenuItem
|
object mnuAnalysisDescr_MultXvsY: TMenuItem
|
||||||
Caption = 'Multiple Group X vs Y Plot'
|
Caption = 'Multiple Group X vs Y Plot'
|
||||||
OnClick = MultXvsYClick
|
OnClick = mnuAnalysisDescr_MultXvsYClick
|
||||||
end
|
end
|
||||||
object XvsMultY: TMenuItem
|
object mnuAnalysisDescr_XvsMultY: TMenuItem
|
||||||
Caption = 'X versus Multiple Y Plot'
|
Caption = 'X versus Multiple Y Plot'
|
||||||
OnClick = XvsMultYClick
|
OnClick = mnuAnalysisDescr_XvsMultYClick
|
||||||
end
|
end
|
||||||
object CompareDists: TMenuItem
|
object mnuAnalysisDescr_CompareDists: TMenuItem
|
||||||
Caption = 'Compare Distributions'
|
Caption = 'Compare Distributions'
|
||||||
OnClick = CompareDistsClick
|
OnClick = mnuAnalysisDescr_CompareDistsClick
|
||||||
end
|
end
|
||||||
object ResistanceLine: TMenuItem
|
object mnuAnalysisDescr_ResistanceLine: TMenuItem
|
||||||
Caption = 'Resistant Line for Bivariate Data'
|
Caption = 'Resistant Line for Bivariate Data'
|
||||||
OnClick = ResistanceLineClick
|
OnClick = mnuAnalysisDescr_ResistanceLineClick
|
||||||
end
|
end
|
||||||
object DataSmooth: TMenuItem
|
object mnuAnalysisDescr_DataSmooth: TMenuItem
|
||||||
Caption = 'Data Smoothing'
|
Caption = 'Data Smoothing'
|
||||||
OnClick = DataSmoothClick
|
OnClick = mnuAnalysisDescr_DataSmoothClick
|
||||||
end
|
end
|
||||||
object homotest: TMenuItem
|
object mnuAnalysisDescr_HomogeneityTest: TMenuItem
|
||||||
Caption = 'Brown-Forsythe Test for Homogeneity of Variance'
|
Caption = 'Brown-Forsythe Test for Homogeneity of Variance'
|
||||||
OnClick = homotestClick
|
OnClick = mnuAnalysisDescr_HomogeneityTestClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object OneSampTests: TMenuItem
|
object OneSampTests: TMenuItem
|
||||||
|
@ -164,18 +164,14 @@ type
|
|||||||
MenuItem31: TMenuItem;
|
MenuItem31: TMenuItem;
|
||||||
MenuItem33: TMenuItem;
|
MenuItem33: TMenuItem;
|
||||||
GenKappa: TMenuItem;
|
GenKappa: TMenuItem;
|
||||||
CompareDists: TMenuItem;
|
|
||||||
MatManMnu: TMenuItem;
|
MatManMnu: TMenuItem;
|
||||||
GrdBkMnu: TMenuItem;
|
GrdBkMnu: TMenuItem;
|
||||||
BinA: TMenuItem;
|
BinA: TMenuItem;
|
||||||
BartlettTest: TMenuItem;
|
BartlettTest: TMenuItem;
|
||||||
GrpFreq: TMenuItem;
|
|
||||||
Correspondence: TMenuItem;
|
Correspondence: TMenuItem;
|
||||||
KSTest: TMenuItem;
|
KSTest: TMenuItem;
|
||||||
MedianPolish: TMenuItem;
|
MedianPolish: TMenuItem;
|
||||||
DataSmooth: TMenuItem;
|
|
||||||
ItemBankMenuItem: TMenuItem;
|
ItemBankMenuItem: TMenuItem;
|
||||||
homotest: TMenuItem;
|
|
||||||
lifetable: TMenuItem;
|
lifetable: TMenuItem;
|
||||||
LSMRitem: TMenuItem;
|
LSMRitem: TMenuItem;
|
||||||
MenuItem42: TMenuItem;
|
MenuItem42: TMenuItem;
|
||||||
@ -189,9 +185,7 @@ type
|
|||||||
SimpChiSqr: TMenuItem;
|
SimpChiSqr: TMenuItem;
|
||||||
SRHItem: TMenuItem;
|
SRHItem: TMenuItem;
|
||||||
OneCaseAnova: TMenuItem;
|
OneCaseAnova: TMenuItem;
|
||||||
ResistanceLine: TMenuItem;
|
|
||||||
Sens: TMenuItem;
|
Sens: TMenuItem;
|
||||||
XvsMultY: TMenuItem;
|
|
||||||
RunsTest: TMenuItem;
|
RunsTest: TMenuItem;
|
||||||
NestedABC: TMenuItem;
|
NestedABC: TMenuItem;
|
||||||
PicView: TMenuItem;
|
PicView: TMenuItem;
|
||||||
@ -242,7 +236,6 @@ type
|
|||||||
Label1: TLabel;
|
Label1: TLabel;
|
||||||
MainMenu1: TMainMenu;
|
MainMenu1: TMainMenu;
|
||||||
MenuItem1: TMenuItem;
|
MenuItem1: TMenuItem;
|
||||||
MenuItem32: TMenuItem;
|
|
||||||
OneSampTests: TMenuItem;
|
OneSampTests: TMenuItem;
|
||||||
MenuItem34: TMenuItem;
|
MenuItem34: TMenuItem;
|
||||||
MenuItem35: TMenuItem;
|
MenuItem35: TMenuItem;
|
||||||
@ -251,17 +244,26 @@ type
|
|||||||
MenuItem38: TMenuItem;
|
MenuItem38: TMenuItem;
|
||||||
MenuItem39: TMenuItem;
|
MenuItem39: TMenuItem;
|
||||||
MenuItem40: TMenuItem;
|
MenuItem40: TMenuItem;
|
||||||
Distributions: TMenuItem;
|
|
||||||
FreqAnal: TMenuItem;
|
mnuAnalysisDescr: TMenuItem;
|
||||||
CrossTabs: TMenuItem;
|
mnuAnalysisDescr_Breakdown: TMenuItem;
|
||||||
Breakdown: TMenuItem;
|
mnuAnalysisDescr_BoxPlot: TMenuItem;
|
||||||
BoxPlot: TMenuItem;
|
mnuAnalysisDescr_BubblePlot: TMenuItem;
|
||||||
NormalityTests: TMenuItem;
|
mnuAnalysisDescr_CompareDists: TMenuItem;
|
||||||
ThreeDRotate: TMenuItem;
|
mnuAnalysisDescr_CrossTabs: TMenuItem;
|
||||||
PlotXvsY: TMenuItem;
|
mnuAnalysisDescr_DataSmooth: TMenuItem;
|
||||||
BubblePlot: TMenuItem;
|
mnuAnalysisDescr_DistribStats: TMenuItem;
|
||||||
StemLeaf: TMenuItem;
|
mnuAnalysisDescr_Freq: TMenuItem;
|
||||||
MultXvsY: TMenuItem;
|
mnuAnalysisDescr_GrpFreq: TMenuItem;
|
||||||
|
mnuAnalysisDescr_HomogeneityTest: TMenuItem;
|
||||||
|
mnuAnalysisDescr_MultXvsY: TMenuItem;
|
||||||
|
mnuAnalysisDescr_Normality: TMenuItem;
|
||||||
|
mnuAnalysisDescr_PlotXvsY: TMenuItem;
|
||||||
|
mnuAnalysisDescr_ResistanceLine: TMenuItem;
|
||||||
|
mnuAnalysisDescr_StemLeaf: TMenuItem;
|
||||||
|
mnuAnalysisDescr_ThreeDRotate: TMenuItem;
|
||||||
|
mnuAnalysisDescr_XvsMultY: TMenuItem;
|
||||||
|
|
||||||
PropDiff: TMenuItem;
|
PropDiff: TMenuItem;
|
||||||
CorrDiff: TMenuItem;
|
CorrDiff: TMenuItem;
|
||||||
ttests: TMenuItem;
|
ttests: TMenuItem;
|
||||||
@ -284,6 +286,25 @@ type
|
|||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
procedure MenuItem2Click(Sender: TObject);
|
procedure MenuItem2Click(Sender: TObject);
|
||||||
|
|
||||||
|
// Menu "Analysis" / "Descriptive"
|
||||||
|
procedure mnuAnalysisDescr_BoxPlotClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_BreakdownClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_BubblePlotClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_CompareDistsClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_CrossTabsClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_DataSmoothClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_DistribStatsClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_FreqClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_GrpFreqClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_HomogeneityTestClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_MultXvsYClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_NormalityClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_PlotXvsYClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_ResistanceLineClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_StemLeafClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_ThreeDRotateClick(Sender: TObject);
|
||||||
|
procedure mnuAnalysisDescr_XvsMultYClick(Sender: TObject);
|
||||||
|
|
||||||
// Menu 'Analysis" / "Statistical Process Control"
|
// Menu 'Analysis" / "Statistical Process Control"
|
||||||
procedure mnuAnalysisSPC_CChartClick(Sender: TObject);
|
procedure mnuAnalysisSPC_CChartClick(Sender: TObject);
|
||||||
procedure mnuAnalysisSPC_CUSUMClick(Sender: TObject);
|
procedure mnuAnalysisSPC_CUSUMClick(Sender: TObject);
|
||||||
@ -373,26 +394,16 @@ type
|
|||||||
procedure AxSAnovaClick(Sender: TObject);
|
procedure AxSAnovaClick(Sender: TObject);
|
||||||
procedure BartlettTestClick(Sender: TObject);
|
procedure BartlettTestClick(Sender: TObject);
|
||||||
procedure BinAClick(Sender: TObject);
|
procedure BinAClick(Sender: TObject);
|
||||||
procedure BoxPlotClick(Sender: TObject);
|
|
||||||
procedure BreakdownClick(Sender: TObject);
|
|
||||||
procedure BubblePlotClick(Sender: TObject);
|
|
||||||
procedure CompareDistsClick(Sender: TObject);
|
|
||||||
procedure CorrDiffClick(Sender: TObject);
|
procedure CorrDiffClick(Sender: TObject);
|
||||||
procedure CorrespondenceClick(Sender: TObject);
|
procedure CorrespondenceClick(Sender: TObject);
|
||||||
procedure CrossTabsClick(Sender: TObject);
|
|
||||||
procedure DataGridClick(Sender: TObject);
|
procedure DataGridClick(Sender: TObject);
|
||||||
procedure DataGridKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
|
procedure DataGridKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
|
||||||
procedure DataGridKeyPress(Sender: TObject; var Key: char);
|
procedure DataGridKeyPress(Sender: TObject; var Key: char);
|
||||||
procedure DataGridPrepareCanvas(sender: TObject; aCol, {%H-}aRow: Integer; {%H-}aState: TGridDrawState);
|
procedure DataGridPrepareCanvas(sender: TObject; aCol, {%H-}aRow: Integer; {%H-}aState: TGridDrawState);
|
||||||
procedure DataSmoothClick(Sender: TObject);
|
|
||||||
procedure DistributionsClick(Sender: TObject);
|
|
||||||
procedure FreqAnalClick(Sender: TObject);
|
|
||||||
procedure GenKappaClick(Sender: TObject);
|
procedure GenKappaClick(Sender: TObject);
|
||||||
procedure GLMClick(Sender: TObject);
|
procedure GLMClick(Sender: TObject);
|
||||||
procedure GrdBkMnuClick(Sender: TObject);
|
procedure GrdBkMnuClick(Sender: TObject);
|
||||||
procedure GrpFreqClick(Sender: TObject);
|
|
||||||
//procedure HelpContentsClick(Sender: TObject);
|
//procedure HelpContentsClick(Sender: TObject);
|
||||||
procedure homotestClick(Sender: TObject);
|
|
||||||
procedure ItemBankMenuItemClick(Sender: TObject);
|
procedure ItemBankMenuItemClick(Sender: TObject);
|
||||||
procedure KSTestClick(Sender: TObject);
|
procedure KSTestClick(Sender: TObject);
|
||||||
procedure LatinSquaresClick(Sender: TObject);
|
procedure LatinSquaresClick(Sender: TObject);
|
||||||
@ -452,28 +463,21 @@ type
|
|||||||
procedure MenuItem97Click(Sender: TObject);
|
procedure MenuItem97Click(Sender: TObject);
|
||||||
procedure MenuItem98Click(Sender: TObject);
|
procedure MenuItem98Click(Sender: TObject);
|
||||||
procedure MenuItem99Click(Sender: TObject);
|
procedure MenuItem99Click(Sender: TObject);
|
||||||
procedure MultXvsYClick(Sender: TObject);
|
|
||||||
procedure NestedABCClick(Sender: TObject);
|
procedure NestedABCClick(Sender: TObject);
|
||||||
procedure NormalityTestsClick(Sender: TObject);
|
|
||||||
procedure OneCaseAnovaClick(Sender: TObject);
|
procedure OneCaseAnovaClick(Sender: TObject);
|
||||||
procedure OneSampTestsClick(Sender: TObject);
|
procedure OneSampTestsClick(Sender: TObject);
|
||||||
// procedure PicViewClick(Sender: TObject);
|
// procedure PicViewClick(Sender: TObject);
|
||||||
procedure PlotXvsYClick(Sender: TObject);
|
|
||||||
procedure PropDiffClick(Sender: TObject);
|
procedure PropDiffClick(Sender: TObject);
|
||||||
procedure ResistanceLineClick(Sender: TObject);
|
|
||||||
procedure RiditAnalysisClick(Sender: TObject);
|
procedure RiditAnalysisClick(Sender: TObject);
|
||||||
procedure RunsTestClick(Sender: TObject);
|
procedure RunsTestClick(Sender: TObject);
|
||||||
procedure SensClick(Sender: TObject);
|
procedure SensClick(Sender: TObject);
|
||||||
procedure SimpChiSqrClick(Sender: TObject);
|
procedure SimpChiSqrClick(Sender: TObject);
|
||||||
procedure SRHItemClick(Sender: TObject);
|
procedure SRHItemClick(Sender: TObject);
|
||||||
procedure StemLeafClick(Sender: TObject);
|
|
||||||
procedure ThreeDRotateClick(Sender: TObject);
|
|
||||||
procedure TTestsClick(Sender: TObject);
|
procedure TTestsClick(Sender: TObject);
|
||||||
procedure TwoSLSRegClick(Sender: TObject);
|
procedure TwoSLSRegClick(Sender: TObject);
|
||||||
procedure WghtedKappaClick(Sender: TObject);
|
procedure WghtedKappaClick(Sender: TObject);
|
||||||
procedure WithinAnovaClick(Sender: TObject);
|
procedure WithinAnovaClick(Sender: TObject);
|
||||||
procedure WLSRegClick(Sender: TObject);
|
procedure WLSRegClick(Sender: TObject);
|
||||||
procedure XvsMultYClick(Sender: TObject);
|
|
||||||
private
|
private
|
||||||
{ private declarations }
|
{ private declarations }
|
||||||
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
|
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
|
||||||
@ -874,14 +878,6 @@ begin
|
|||||||
SpBrFrm.ShowModal;
|
SpBrFrm.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
//Menu "Analysis" > "Descriptive" > "Multiple Group X vs Y Plot"
|
|
||||||
procedure TOS3MainFrm.MultXvsYClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if MultXvsYFrm = nil then
|
|
||||||
Application.CreateForm(TMultXvsYFrm, MultXvsYFrm);
|
|
||||||
MultXvsYFrm.Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Comparisons" > "ABC ANOVA with B Nested in A"
|
// Menu "Analysis" > "Comparisons" > "ABC ANOVA with B Nested in A"
|
||||||
procedure TOS3MainFrm.NestedABCClick(Sender: TObject);
|
procedure TOS3MainFrm.NestedABCClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -890,14 +886,6 @@ begin
|
|||||||
ABCNestedForm.ShowModal;
|
ABCNestedForm.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Normality Tests"
|
|
||||||
procedure TOS3MainFrm.NormalityTestsClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if NormalityFrm = nil then
|
|
||||||
Application.CreateForm(TNormalityFrm, NormalityFrm);
|
|
||||||
NormalityFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Comparisons" > "2 or 3 Way ANOVA with One Case Per Cell"
|
// Menu "Analysis" > "Comparisons" > "2 or 3 Way ANOVA with One Case Per Cell"
|
||||||
procedure TOS3MainFrm.OneCaseAnovaClick(Sender: TObject);
|
procedure TOS3MainFrm.OneCaseAnovaClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -915,15 +903,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Plot X vs Y"
|
|
||||||
procedure TOS3MainFrm.PlotXvsYClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if PlotXYFrm = nil then
|
|
||||||
Application.CreateForm(TPlotXYFrm, PlotXYFrm);
|
|
||||||
PlotXYFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Comparisons" > "Difference beween Proportions"
|
// Menu "Analysis" > "Comparisons" > "Difference beween Proportions"
|
||||||
procedure TOS3MainFrm.PropDiffClick(Sender: TObject);
|
procedure TOS3MainFrm.PropDiffClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -932,13 +911,6 @@ begin
|
|||||||
TwoPropFrm.ShowModal;
|
TwoPropFrm.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TOS3MainFrm.ResistanceLineClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if ResistanceLineForm = nil then
|
|
||||||
Application.CreateForm(TResistanceLineForm, ResistanceLineForm);
|
|
||||||
ResistanceLineForm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Nonparametric" > "RIDIT Analysis"
|
// Menu "Analysis" > "Nonparametric" > "RIDIT Analysis"
|
||||||
procedure TOS3MainFrm.RiditAnalysisClick(Sender: TObject);
|
procedure TOS3MainFrm.RiditAnalysisClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -980,24 +952,6 @@ begin
|
|||||||
SRHTest.ShowModal;
|
SRHTest.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Stem and Leaf Plot"
|
|
||||||
procedure TOS3MainFrm.StemLeafClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if StemLeafFrm = nil then
|
|
||||||
Application.CreateForm(TStemLeafFrm, StemLeafFrm);
|
|
||||||
StemLeafFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "3-D Variable Rotation"
|
|
||||||
procedure TOS3MainFrm.ThreeDRotateClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if Rot3DFrm = nil then
|
|
||||||
Application.CreateForm(TRot3DFrm, Rot3DFrm);
|
|
||||||
Rot3DFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Comparisons" > "t-tests"
|
// Menu "Analysis" > "Comparisons" > "t-tests"
|
||||||
procedure TOS3MainFrm.TTestsClick(Sender: TObject);
|
procedure TOS3MainFrm.TTestsClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -1038,22 +992,6 @@ begin
|
|||||||
WLSFrm.ShowModal;
|
WLSFrm.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "X versus Multiple Y Plot"
|
|
||||||
procedure TOS3MainFrm.XvsMultYClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if XvsMultYForm = nil then
|
|
||||||
Application.CreateForm(TXvsMultYForm, XvsMultYForm);
|
|
||||||
XvsMultYForm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Distribution Statistics"
|
|
||||||
procedure TOS3MainFrm.DistributionsClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if DescriptiveFrm = nil then
|
|
||||||
Application.CreateForm(TDescriptiveFrm, DescriptiveFrm);
|
|
||||||
DescriptiveFrm.Show;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
procedure TOS3MainFrm.FormClick(Sender: TObject);
|
procedure TOS3MainFrm.FormClick(Sender: TObject);
|
||||||
@ -1119,14 +1057,6 @@ begin
|
|||||||
DataGrid.Canvas.Textstyle := ts;
|
DataGrid.Canvas.Textstyle := ts;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Data Smoothing"
|
|
||||||
procedure TOS3MainFrm.DataSmoothClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if DataSmoothingForm = nil then
|
|
||||||
Application.CreateForm(TDataSmoothingForm, DataSmoothingForm);
|
|
||||||
DataSmoothingForm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TOS3MainFrm.DataGridKeyDown(Sender: TObject; var Key: Word;
|
procedure TOS3MainFrm.DataGridKeyDown(Sender: TObject; var Key: Word;
|
||||||
Shift: TShiftState);
|
Shift: TShiftState);
|
||||||
var
|
var
|
||||||
@ -1162,38 +1092,6 @@ begin
|
|||||||
if DataGrid.Cells[PrevCol,PrevRow] <> '' then FormatCell(PrevCol,PrevRow);
|
if DataGrid.Cells[PrevCol,PrevRow] <> '' then FormatCell(PrevCol,PrevRow);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Compare Distributions"
|
|
||||||
procedure TOS3MainFrm.CompareDistsClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if CompareDistFrm = nil then
|
|
||||||
Application.CreateForm(TCompareDistFrm, CompareDistFrm);
|
|
||||||
CompareDistFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Breakdown"
|
|
||||||
procedure TOS3MainFrm.BreakdownClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if BreakDownFrm = nil then
|
|
||||||
Application.CreateForm(TBreakDownFrm, BreakDownFrm);
|
|
||||||
BreakDownFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Repeated Measures Bubble Plot"
|
|
||||||
procedure TOS3MainFrm.BubblePlotClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if BubbleForm = nil then
|
|
||||||
Application.CreateForm(TBubbleForm, BubbleForm);
|
|
||||||
BubbleForm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Box Plot"
|
|
||||||
procedure TOS3MainFrm.BoxPlotClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if BoxPlotFrm = nil then
|
|
||||||
Application.CreateForm(TBoxPlotFrm, BoxPlotFrm);
|
|
||||||
BoxPlotFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Comparisons" > "1,2 or 3 Way ANOVAs"
|
// Menu "Analysis" > "Comparisons" > "1,2 or 3 Way ANOVAs"
|
||||||
procedure TOS3MainFrm.AnovaClick(Sender: TObject);
|
procedure TOS3MainFrm.AnovaClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -1258,14 +1156,6 @@ begin
|
|||||||
CorrespondenceForm.ShowModal;
|
CorrespondenceForm.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Cross tabulation"
|
|
||||||
procedure TOS3MainFrm.CrossTabsClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if CrossTabFrm = nil then
|
|
||||||
Application.CreateForm(TCrossTabFrm, CrossTabFrm);
|
|
||||||
CrossTabFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TOS3MainFrm.DataGridClick(Sender: TObject);
|
procedure TOS3MainFrm.DataGridClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
RowEdit.Text := IntToStr(DataGrid.Row);
|
RowEdit.Text := IntToStr(DataGrid.Row);
|
||||||
@ -1584,7 +1474,7 @@ procedure TOS3MainFrm.mnuSimDistPlotsClick(Sender: TObject);
|
|||||||
begin
|
begin
|
||||||
if DistribFrm = nil then
|
if DistribFrm = nil then
|
||||||
Application.CreateForm(TDistribFrm, DistribFrm);
|
Application.CreateForm(TDistribFrm, DistribFrm);
|
||||||
DistribFrm.ShowModal;
|
DistribFrm.Show;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Simulations" > "F probability"
|
// Menu "Simulations" > "F probability"
|
||||||
@ -1848,14 +1738,6 @@ end;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Frequency Analysis"
|
|
||||||
procedure TOS3MainFrm.FreqAnalClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if FreqFrm = nil then
|
|
||||||
Application.CreateForm(TFreqFrm, FreqFrm);
|
|
||||||
FreqFrm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Nonparametric" > "Generalized Kappa"
|
// Menu "Analysis" > "Nonparametric" > "Generalized Kappa"
|
||||||
procedure TOS3MainFrm.GenKappaClick(Sender: TObject);
|
procedure TOS3MainFrm.GenKappaClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -1880,14 +1762,6 @@ begin
|
|||||||
GradebookFrm.ShowModal;
|
GradebookFrm.ShowModal;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Menu "Analysis" > "Descriptive" > "Plot Group Frequencies"
|
|
||||||
procedure TOS3MainFrm.GrpFreqClick(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if GroupFreqForm = nil then
|
|
||||||
Application.CreateForm(TGroupFreqForm, GroupFreqForm);
|
|
||||||
GroupFreqForm.ShowModal;
|
|
||||||
end;
|
|
||||||
|
|
||||||
(* replaced by ShowTOC
|
(* replaced by ShowTOC
|
||||||
// Menu "Help" > "General Help"
|
// Menu "Help" > "General Help"
|
||||||
procedure TOS3MainFrm.HelpContentsClick(Sender: TObject);
|
procedure TOS3MainFrm.HelpContentsClick(Sender: TObject);
|
||||||
@ -1897,36 +1771,6 @@ begin
|
|||||||
HelpFrm.ShowModal;
|
HelpFrm.ShowModal;
|
||||||
end;
|
end;
|
||||||
*)
|
*)
|
||||||
// Menu "Analyses" > "Brown-Forsythe test for homogeneity of variance"
|
|
||||||
procedure TOS3MainFrm.homotestClick(Sender: TObject);
|
|
||||||
Var
|
|
||||||
response: string;
|
|
||||||
GroupCol, VarCol, NoCases: integer;
|
|
||||||
begin
|
|
||||||
response := '1';
|
|
||||||
repeat
|
|
||||||
if not InputQuery('Column of group codes', 'Column index', response) then
|
|
||||||
exit;
|
|
||||||
if TryStrToInt(response, GroupCol) and (GroupCol > 0) then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
ErrorMsg('Illegal value entered for index of group column.');
|
|
||||||
until false;
|
|
||||||
|
|
||||||
response := '2';
|
|
||||||
repeat
|
|
||||||
if not InputQuery('Column of dependent variable', 'Column index', response) then
|
|
||||||
exit;
|
|
||||||
if TryStrToInt(response, VarCol) then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
ErrorMsg('Illegal value entered for index of variable column.');
|
|
||||||
until false;
|
|
||||||
|
|
||||||
NoCases := StrToInt(NoCasesEdit.text);
|
|
||||||
HomogeneityTest(GroupCol, VarCol, NoCases);
|
|
||||||
end;
|
|
||||||
|
|
||||||
// Menu "Analysis" > "Measurement Programs" > "Item Banking"
|
// Menu "Analysis" > "Measurement Programs" > "Item Banking"
|
||||||
procedure TOS3MainFrm.ItemBankMenuItemClick(Sender: TObject);
|
procedure TOS3MainFrm.ItemBankMenuItemClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -2118,6 +1962,181 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ Descriptive statistics commands }
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Box Plot"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_BoxPlotClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if BoxPlotFrm = nil then
|
||||||
|
begin
|
||||||
|
Application.CreateForm(TBoxPlotFrm, BoxPlotFrm);
|
||||||
|
BoxPlotFrm.Position := poMainFormCenter;
|
||||||
|
end;
|
||||||
|
BoxPlotFrm.Show;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "mnuAnalysisDescr_Breakdown"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_BreakdownClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if BreakDownFrm = nil then
|
||||||
|
Application.CreateForm(TBreakDownFrm, BreakDownFrm);
|
||||||
|
BreakDownFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Repeated Measures Bubble Plot"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_BubblePlotClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if BubbleForm = nil then
|
||||||
|
begin
|
||||||
|
Application.CreateForm(TBubbleForm, BubbleForm);
|
||||||
|
BubbleForm.Position := poMainFormCenter;
|
||||||
|
end;
|
||||||
|
BubbleForm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Compare mnuAnalysisDescr_DistribStats"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_CompareDistsClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if CompareDistFrm = nil then
|
||||||
|
Application.CreateForm(TCompareDistFrm, CompareDistFrm);
|
||||||
|
CompareDistFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Cross tabulation"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_CrossTabsClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if CrossTabFrm = nil then
|
||||||
|
Application.CreateForm(TCrossTabFrm, CrossTabFrm);
|
||||||
|
CrossTabFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Data Smoothing"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_DataSmoothClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if DataSmoothingForm = nil then
|
||||||
|
Application.CreateForm(TDataSmoothingForm, DataSmoothingForm);
|
||||||
|
DataSmoothingForm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Distribution Statistics"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_DistribStatsClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if DescriptiveFrm = nil then
|
||||||
|
begin
|
||||||
|
Application.CreateForm(TDescriptiveFrm, DescriptiveFrm);
|
||||||
|
DescriptiveFrm.Position := poMainFormCenter;
|
||||||
|
end;
|
||||||
|
DescriptiveFrm.Show;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Frequency Analysis"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_FreqClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if FreqFrm = nil then
|
||||||
|
Application.CreateForm(TFreqFrm, FreqFrm);
|
||||||
|
FreqFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Plot Group Frequencies"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_GrpFreqClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if GroupFreqForm = nil then
|
||||||
|
Application.CreateForm(TGroupFreqForm, GroupFreqForm);
|
||||||
|
GroupFreqForm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analyses" > "Brown-Forsythe test for homogeneity of variance"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_HomogeneityTestClick(Sender: TObject);
|
||||||
|
Var
|
||||||
|
response: string;
|
||||||
|
GroupCol, VarCol, NoCases: integer;
|
||||||
|
begin
|
||||||
|
response := '1';
|
||||||
|
repeat
|
||||||
|
if not InputQuery('Column of group codes', 'Column index', response) then
|
||||||
|
exit;
|
||||||
|
if TryStrToInt(response, GroupCol) and (GroupCol > 0) then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
ErrorMsg('Illegal value entered for index of group column.');
|
||||||
|
until false;
|
||||||
|
|
||||||
|
response := '2';
|
||||||
|
repeat
|
||||||
|
if not InputQuery('Column of dependent variable', 'Column index', response) then
|
||||||
|
exit;
|
||||||
|
if TryStrToInt(response, VarCol) then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
ErrorMsg('Illegal value entered for index of variable column.');
|
||||||
|
until false;
|
||||||
|
|
||||||
|
NoCases := StrToInt(NoCasesEdit.text);
|
||||||
|
HomogeneityTest(GroupCol, VarCol, NoCases);
|
||||||
|
end;
|
||||||
|
|
||||||
|
//Menu "Analysis" > "Descriptive" > "Multiple Group X vs Y Plot"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_MultXvsYClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if MultXvsYFrm = nil then
|
||||||
|
Application.CreateForm(TMultXvsYFrm, MultXvsYFrm);
|
||||||
|
MultXvsYFrm.Show;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Normality Tests"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_NormalityClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if NormalityFrm = nil then
|
||||||
|
Application.CreateForm(TNormalityFrm, NormalityFrm);
|
||||||
|
NormalityFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Plot X vs Y"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_PlotXvsYClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if PlotXYFrm = nil then
|
||||||
|
begin
|
||||||
|
Application.CreateForm(TPlotXYFrm, PlotXYFrm);
|
||||||
|
PlotXYFrm.Position := poMainFormCenter;
|
||||||
|
end;
|
||||||
|
PlotXYFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_ResistanceLineClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if ResistanceLineForm = nil then
|
||||||
|
Application.CreateForm(TResistanceLineForm, ResistanceLineForm);
|
||||||
|
ResistanceLineForm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "Stem and Leaf Plot"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_StemLeafClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if StemLeafFrm = nil then
|
||||||
|
Application.CreateForm(TStemLeafFrm, StemLeafFrm);
|
||||||
|
StemLeafFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "3-D Variable Rotation"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_ThreeDRotateClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if Rot3DFrm = nil then
|
||||||
|
Application.CreateForm(TRot3DFrm, Rot3DFrm);
|
||||||
|
Rot3DFrm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Menu "Analysis" > "Descriptive" > "X versus Multiple Y Plot"
|
||||||
|
procedure TOS3MainFrm.mnuAnalysisDescr_XvsMultYClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if XvsMultYForm = nil then
|
||||||
|
Application.CreateForm(TXvsMultYForm, XvsMultYForm);
|
||||||
|
XvsMultYForm.ShowModal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ SPC commands }
|
||||||
|
|
||||||
// Menu "Analysis" > "Statistical Process Control" > "Defect (nonconformity) c Chart"
|
// Menu "Analysis" > "Statistical Process Control" > "Defect (nonconformity) c Chart"
|
||||||
procedure TOS3MainFrm.mnuAnalysisSPC_CChartClick(Sender: TObject);
|
procedure TOS3MainFrm.mnuAnalysisSPC_CChartClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
@ -10,7 +10,6 @@ object DistribFrm: TDistribFrm
|
|||||||
ClientWidth = 948
|
ClientWidth = 948
|
||||||
OnActivate = FormActivate
|
OnActivate = FormActivate
|
||||||
OnCreate = FormCreate
|
OnCreate = FormCreate
|
||||||
OnShow = FormShow
|
|
||||||
Position = poMainFormCenter
|
Position = poMainFormCenter
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
LCLVersion = '2.1.0.0'
|
LCLVersion = '2.1.0.0'
|
||||||
|
@ -51,7 +51,6 @@ type
|
|||||||
procedure ComputeBtnClick(Sender: TObject);
|
procedure ComputeBtnClick(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure CalcChi2(const AX: Double; out AY: Double);
|
procedure CalcChi2(const AX: Double; out AY: Double);
|
||||||
procedure CalcChi2_Cumulative(const AX: Double; out AY: Double);
|
procedure CalcChi2_Cumulative(const AX: Double; out AY: Double);
|
||||||
procedure CalcF(const AX: Double; out AY: Double);
|
procedure CalcF(const AX: Double; out AY: Double);
|
||||||
@ -67,6 +66,7 @@ type
|
|||||||
procedure tbEraseClick(Sender: TObject);
|
procedure tbEraseClick(Sender: TObject);
|
||||||
procedure tbPrintClick(Sender: TObject);
|
procedure tbPrintClick(Sender: TObject);
|
||||||
procedure tbSaveClick(Sender: TObject);
|
procedure tbSaveClick(Sender: TObject);
|
||||||
|
|
||||||
private
|
private
|
||||||
{ private declarations }
|
{ private declarations }
|
||||||
ChartFrame: TChartFrame;
|
ChartFrame: TChartFrame;
|
||||||
@ -79,10 +79,11 @@ type
|
|||||||
procedure Chi2Plot;
|
procedure Chi2Plot;
|
||||||
procedure FPlot;
|
procedure FPlot;
|
||||||
procedure tPlot;
|
procedure tPlot;
|
||||||
|
|
||||||
function Validate(out AMsg: String; out AControl: TWinControl): Boolean;
|
function Validate(out AMsg: String; out AControl: TWinControl): Boolean;
|
||||||
|
|
||||||
public
|
public
|
||||||
{ public declarations }
|
{ public declarations }
|
||||||
|
procedure Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -184,7 +185,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TDistribFrm.ResetBtnClick(Sender: TObject);
|
procedure TDistribFrm.Reset;
|
||||||
begin
|
begin
|
||||||
NDChk.Checked := false;
|
NDChk.Checked := false;
|
||||||
tChk.Checked := false;
|
tChk.Checked := false;
|
||||||
@ -198,6 +199,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TDistribFrm.ResetBtnClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Reset;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TDistribFrm.ShowCriticalValuesChkChange(Sender: TObject);
|
procedure TDistribFrm.ShowCriticalValuesChkChange(Sender: TObject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -212,12 +218,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TDistribFrm.FormShow(Sender: TObject);
|
|
||||||
begin
|
|
||||||
ResetBtnClick(self);
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure TDistribFrm.CalcF(const AX: Double; out AY: Double);
|
procedure TDistribFrm.CalcF(const AX: Double; out AY: Double);
|
||||||
begin
|
begin
|
||||||
AY := FDensity(AX, DF1, DF2);
|
AY := FDensity(AX, DF1, DF2);
|
||||||
@ -443,6 +443,8 @@ begin
|
|||||||
ChartFrame.Chart.Legend.TextFormat := tfHTML;
|
ChartFrame.Chart.Legend.TextFormat := tfHTML;
|
||||||
ChartFrame.Chart.BottomAxis.Intervals.MaxLength := 80;
|
ChartFrame.Chart.BottomAxis.Intervals.MaxLength := 80;
|
||||||
ChartFrame.Chart.BottomAxis.Intervals.MinLength := 30;
|
ChartFrame.Chart.BottomAxis.Intervals.MinLength := 30;
|
||||||
|
|
||||||
|
Reset;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user