You've already forked lazarus-ccr
LazStats: Beginning to inherited forms from TBasicStatsForm. Add ResetForms method to Mainform in order to reset all non-modal data forms, eg. when a new file is loaded.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7701 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -49,7 +49,7 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item7>
|
||||
</RequiredPackages>
|
||||
<Units Count="176">
|
||||
<Units Count="177">
|
||||
<Unit0>
|
||||
<Filename Value="LazStats.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -1429,6 +1429,13 @@
|
||||
<ResourceBaseClass Value="Frame"/>
|
||||
<UnitName Value="ReportFrameUnit"/>
|
||||
</Unit175>
|
||||
<Unit176>
|
||||
<Filename Value="forms\misc\basicstatsformunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="BasicStatsForm"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="BasicStatsFormUnit"/>
|
||||
</Unit176>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -8,7 +8,8 @@ uses
|
||||
{$ENDIF}{$ENDIF}
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms, tachartlazaruspkg, tachartprint, lhelpcontrolpkg,
|
||||
Globals, LicenseUnit, OptionsUnit, MainDM, MainUnit, ReportFrameUnit;
|
||||
Globals, LicenseUnit, OptionsUnit, MainDM, MainUnit, ReportFrameUnit,
|
||||
BasicStatsFormUnit;
|
||||
|
||||
{$R LazStats.res}
|
||||
|
||||
@ -28,6 +29,7 @@ begin
|
||||
end;
|
||||
Application.CreateForm(TMainDataModule, MainDataModule);
|
||||
Application.CreateForm(TOS3MainFrm, OS3MainFrm);
|
||||
Application.CreateForm(TBasicStatsForm, BasicStatsForm);
|
||||
Application.Run;
|
||||
end.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
object BoxPlotFrm: TBoxPlotFrm
|
||||
inherited BoxPlotFrm: TBoxPlotFrm
|
||||
Left = 449
|
||||
Height = 500
|
||||
Top = 211
|
||||
|
@ -9,14 +9,15 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, ExtCtrls, Printers, ComCtrls, Buttons,
|
||||
MainUnit, Globals, DataProcs, ContextHelpUnit, ReportFrameUnit, ChartFrameUnit;
|
||||
MainUnit, Globals, DataProcs, ContextHelpUnit,
|
||||
BasicStatsFormUnit, ReportFrameUnit, ChartFrameUnit;
|
||||
|
||||
|
||||
type
|
||||
|
||||
{ TBoxPlotFrm }
|
||||
|
||||
TBoxPlotFrm = class(TForm)
|
||||
TBoxPlotFrm = class(TBasicStatsForm)
|
||||
Bevel2: TBevel;
|
||||
HelpBtn: TButton;
|
||||
PageControl1: TPageControl;
|
||||
@ -62,7 +63,7 @@ type
|
||||
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -9,14 +9,15 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, Clipbrd, Buttons, ExtCtrls, ComCtrls, Math,
|
||||
MainUnit, Globals, DataProcs, DictionaryUnit, ContextHelpUnit, ChartFrameUnit, ReportFrameUnit;
|
||||
MainUnit, Globals, DataProcs, DictionaryUnit, ContextHelpUnit,
|
||||
BasicStatsFormUnit, ChartFrameUnit, ReportFrameUnit;
|
||||
|
||||
|
||||
type
|
||||
|
||||
{ TBubbleForm }
|
||||
|
||||
TBubbleForm = class(TForm)
|
||||
TBubbleForm = class(TBasicStatsForm)
|
||||
Bevel1: TBevel;
|
||||
HelpBtn: TButton;
|
||||
PageControl: TPageControl;
|
||||
@ -79,7 +80,7 @@ type
|
||||
procedure UpdateBtnStates;
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -1,4 +1,4 @@
|
||||
object DescriptiveFrm: TDescriptiveFrm
|
||||
inherited DescriptiveFrm: TDescriptiveFrm
|
||||
Left = 526
|
||||
Height = 384
|
||||
Top = 202
|
||||
|
@ -7,14 +7,15 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, ExtCtrls, Buttons,
|
||||
MainUnit, Globals, FunctionsLib, ReportFrameUnit, DataProcs, DictionaryUnit, ContextHelpUnit;
|
||||
MainUnit, Globals, FunctionsLib, BasicStatsFormUnit,
|
||||
ReportFrameUnit, DataProcs, DictionaryUnit, ContextHelpUnit;
|
||||
|
||||
|
||||
type
|
||||
|
||||
{ TDescriptiveFrm }
|
||||
|
||||
TDescriptiveFrm = class(TForm)
|
||||
TDescriptiveFrm = class(TBasicStatsForm)
|
||||
Bevel1: TBevel;
|
||||
ComputeBtn: TButton;
|
||||
CaseChk: TCheckBox;
|
||||
@ -60,7 +61,7 @@ type
|
||||
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -1,266 +0,0 @@
|
||||
object FreqSpecsFrm: TFreqSpecsFrm
|
||||
Left = 310
|
||||
Height = 331
|
||||
Top = 137
|
||||
Width = 325
|
||||
AutoSize = True
|
||||
BorderStyle = bsSingle
|
||||
Caption = 'Frequency Specifications'
|
||||
ClientHeight = 331
|
||||
ClientWidth = 325
|
||||
OnActivate = FormActivate
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '2.1.0.0'
|
||||
object Label1: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = VarName
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 84
|
||||
Width = 44
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Variable:'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label2: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Minimum
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 115
|
||||
Width = 53
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Minimum'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Maximum
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 146
|
||||
Width = 55
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Maximum'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label4: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Range
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 177
|
||||
Width = 33
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Range'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label5: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = IntSize
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 208
|
||||
Width = 62
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Interval Size'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label6: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = NoInts
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 239
|
||||
Width = 105
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Number of Intervals'
|
||||
ParentColor = False
|
||||
end
|
||||
object VarName: TEdit
|
||||
AnchorSideLeft.Control = NoInts
|
||||
AnchorSideTop.Control = Memo1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 137
|
||||
Height = 23
|
||||
Top = 80
|
||||
Width = 180
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 12
|
||||
BorderSpacing.Right = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object Minimum: TEdit
|
||||
AnchorSideLeft.Control = NoInts
|
||||
AnchorSideTop.Control = VarName
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 137
|
||||
Height = 23
|
||||
Top = 111
|
||||
Width = 180
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object Maximum: TEdit
|
||||
AnchorSideLeft.Control = NoInts
|
||||
AnchorSideTop.Control = Minimum
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 137
|
||||
Height = 23
|
||||
Top = 142
|
||||
Width = 180
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object Range: TEdit
|
||||
AnchorSideLeft.Control = NoInts
|
||||
AnchorSideTop.Control = Maximum
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 137
|
||||
Height = 23
|
||||
Top = 173
|
||||
Width = 180
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object IntSize: TEdit
|
||||
AnchorSideLeft.Control = NoInts
|
||||
AnchorSideTop.Control = Range
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 137
|
||||
Height = 23
|
||||
Top = 204
|
||||
Width = 180
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
OnKeyPress = IntSizeKeyPress
|
||||
TabOrder = 4
|
||||
end
|
||||
object NoInts: TEdit
|
||||
AnchorSideLeft.Control = Label6
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = IntSize
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 137
|
||||
Height = 23
|
||||
Top = 235
|
||||
Width = 180
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 24
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
TabOrder = 5
|
||||
end
|
||||
object CancelBtn: TButton
|
||||
AnchorSideTop.Control = Bevel1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = OKBtn
|
||||
Left = 201
|
||||
Height = 25
|
||||
Top = 274
|
||||
Width = 62
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 12
|
||||
BorderSpacing.Bottom = 8
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 7
|
||||
end
|
||||
object OKBtn: TButton
|
||||
AnchorSideTop.Control = Bevel1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 275
|
||||
Height = 25
|
||||
Top = 274
|
||||
Width = 42
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
Caption = 'OK'
|
||||
ModalResult = 1
|
||||
OnClick = OKBtnClick
|
||||
TabOrder = 8
|
||||
end
|
||||
object HelpBtn: TButton
|
||||
Tag = 123
|
||||
AnchorSideTop.Control = Bevel1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = CancelBtn
|
||||
Left = 138
|
||||
Height = 25
|
||||
Top = 274
|
||||
Width = 51
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 36
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Right = 12
|
||||
BorderSpacing.Bottom = 8
|
||||
Caption = 'Help'
|
||||
OnClick = HelpBtnClick
|
||||
TabOrder = 6
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = NoInts
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 8
|
||||
Top = 258
|
||||
Width = 325
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
Shape = bsBottomLine
|
||||
end
|
||||
object Memo1: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 60
|
||||
Top = 8
|
||||
Width = 309
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Around = 8
|
||||
Caption = 'The number of intervals must be less than or equal to the number of cases. To change the number of intervals, change the interval size to a larger value. Press the Enter key to make the number of intervals smaller.'
|
||||
ParentColor = False
|
||||
WordWrap = True
|
||||
end
|
||||
end
|
@ -1,149 +0,0 @@
|
||||
unit FreqSpecsUnit;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, ExtCtrls,
|
||||
ContextHelpUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TFreqSpecsFrm }
|
||||
|
||||
TFreqSpecsFrm = class(TForm)
|
||||
Bevel1: TBevel;
|
||||
CancelBtn: TButton;
|
||||
HelpBtn: TButton;
|
||||
Memo1: TLabel;
|
||||
OKBtn: TButton;
|
||||
VarName: TEdit;
|
||||
Minimum: TEdit;
|
||||
Maximum: TEdit;
|
||||
Range: TEdit;
|
||||
IntSize: TEdit;
|
||||
NoInts: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
Label4: TLabel;
|
||||
Label5: TLabel;
|
||||
Label6: TLabel;
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure HelpBtnClick(Sender: TObject);
|
||||
procedure IntSizeKeyPress(Sender: TObject; var Key: char);
|
||||
procedure OKBtnClick(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
FAutoSized: Boolean;
|
||||
FNoCases: Integer;
|
||||
function Validate(out AMsg: String; out AControl: TWinControl): Boolean;
|
||||
public
|
||||
{ public declarations }
|
||||
property NoCases: Integer read FNoCases write FNoCases;
|
||||
end;
|
||||
|
||||
var
|
||||
FreqSpecsFrm: TFreqSpecsFrm;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
Math;
|
||||
|
||||
{ TFreqSpecsFrm }
|
||||
|
||||
procedure TFreqSpecsFrm.IntSizeKeyPress(Sender: TObject; var Key: char);
|
||||
var
|
||||
rangeval : double;
|
||||
increment : double;
|
||||
begin
|
||||
if ord(Key) <> 13 then exit;
|
||||
rangeval := StrToFloat(Range.Text);
|
||||
increment := StrToFloat(IntSize.Text);
|
||||
NoInts.Text := FloatToStr(rangeval / increment);
|
||||
end;
|
||||
|
||||
procedure TFreqSpecsFrm.OKBtnClick(Sender: TObject);
|
||||
var
|
||||
msg: String;
|
||||
C: TWinControl;
|
||||
begin
|
||||
if not Validate(msg, C) then begin
|
||||
C.SetFocus;
|
||||
MessageDlg(msg, mtError, [mbOK], 0);
|
||||
ModalResult := mrNone;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TFreqSpecsFrm.Validate(out AMsg: String;
|
||||
out AControl: TWinControl): Boolean;
|
||||
var
|
||||
NoIntervals: Integer;
|
||||
f: Double;
|
||||
begin
|
||||
Result := False;
|
||||
if IntSize.Text = '' then
|
||||
begin
|
||||
AControl := IntSize;
|
||||
AMsg := 'Interval size is not specified.';
|
||||
exit;
|
||||
end;
|
||||
if not TryStrToFloat(IntSize.Text, f) then
|
||||
begin
|
||||
AControl := IntSize;
|
||||
AMsg := 'No valid number given for interval size.';
|
||||
exit;
|
||||
end;
|
||||
if NoInts.Text = '' then
|
||||
begin
|
||||
AControl := NoInts;
|
||||
AMsg := 'Number of intervals not specified.';
|
||||
exit;
|
||||
end;
|
||||
if not TryStrToInt(NoInts.Text, NoIntervals) then
|
||||
begin
|
||||
AControl := NoInts;
|
||||
AMsg := 'No valid number given for number of intervals.';
|
||||
exit;
|
||||
end;
|
||||
if NoIntervals + 1 > NoCases then begin
|
||||
AControl := NoInts;
|
||||
AMsg := Format('Number of intervals cannot be greater than the number of cases (%d).', [NoCases]);
|
||||
exit;
|
||||
end;
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
procedure TFreqSpecsFrm.FormActivate(Sender: TObject);
|
||||
var
|
||||
w: Integer;
|
||||
begin
|
||||
if FAutoSized then
|
||||
exit;
|
||||
|
||||
w := MaxValue([OKBtn.Width, CancelBtn.Width, HelpBtn.Width]);
|
||||
OKBtn.Constraints.MinWidth := w;
|
||||
CancelBtn.Constraints.MinWidth := w;
|
||||
HelpBtn.Constraints.MinWidth := w;
|
||||
Constraints.MinHeight := Height;
|
||||
Constraints.MaxHeight := Height;
|
||||
HelpBtn.BorderSpacing.Left := NoInts.Left;
|
||||
|
||||
FAutoSized := true;
|
||||
end;
|
||||
|
||||
procedure TFreqSpecsFrm.HelpBtnClick(Sender: TObject);
|
||||
begin
|
||||
if ContextHelpForm = nil then
|
||||
Application.CreateForm(TContextHelpForm, ContextHelpForm);
|
||||
ContextHelpForm.HelpMessage((Sender as TButton).tag);
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I freqspecsunit.lrs}
|
||||
|
||||
end.
|
||||
|
@ -1,4 +1,4 @@
|
||||
object FreqFrm: TFreqFrm
|
||||
inherited FreqFrm: TFreqFrm
|
||||
Left = 490
|
||||
Height = 376
|
||||
Top = 228
|
||||
|
@ -9,13 +9,13 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, Buttons, ExtCtrls, ComCtrls, Spin,
|
||||
Globals, MainUnit, GraphLib, DataProcs, ReportFrameUnit, ChartFrameUnit;
|
||||
Globals, MainUnit, GraphLib, DataProcs, BasicStatsFormUnit, ReportFrameUnit, ChartFrameUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TFreqFrm }
|
||||
|
||||
TFreqFrm = class(TForm)
|
||||
TFreqFrm = class(TBasicStatsForm)
|
||||
Bevel1: TBevel;
|
||||
BinSelectionGroup: TGroupBox;
|
||||
ThreeDChk: TCheckBox;
|
||||
@ -70,7 +70,7 @@ type
|
||||
procedure UpdateBtnStates;
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -1,4 +1,4 @@
|
||||
object MultXvsYFrm: TMultXvsYFrm
|
||||
inherited MultXvsYFrm: TMultXvsYFrm
|
||||
Left = 814
|
||||
Height = 416
|
||||
Top = 216
|
||||
|
@ -10,13 +10,14 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, ExtCtrls, Buttons, Clipbrd,
|
||||
MainUnit, Globals, OutputUnit, DataProcs, DictionaryUnit, ContextHelpUnit;
|
||||
MainUnit, Globals, OutputUnit, DataProcs, DictionaryUnit, ContextHelpUnit,
|
||||
BasicStatsFormUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TMultXvsYFrm }
|
||||
|
||||
TMultXvsYFrm = class(TForm)
|
||||
TMultXvsYFrm = class(TBasicStatsForm)
|
||||
Bevel1: TBevel;
|
||||
HelpBtn: TButton;
|
||||
Panel1: TPanel;
|
||||
@ -71,7 +72,7 @@ type
|
||||
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -1,4 +1,4 @@
|
||||
object NormalityFrm: TNormalityFrm
|
||||
inherited NormalityFrm: TNormalityFrm
|
||||
Left = 628
|
||||
Height = 516
|
||||
Top = 275
|
||||
|
@ -9,14 +9,15 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, Buttons, ExtCtrls, ComCtrls,
|
||||
MainUnit, Globals, FunctionsLib, DataProcs, ReportFrameUnit, ChartFrameUnit;
|
||||
MainUnit, Globals, FunctionsLib, DataProcs, BasicStatsFormUnit,
|
||||
ReportFrameUnit, ChartFrameUnit;
|
||||
|
||||
|
||||
type
|
||||
|
||||
{ TNormalityFrm }
|
||||
|
||||
TNormalityFrm = class(TForm)
|
||||
TNormalityFrm = class(TBasicStatsForm)
|
||||
Bevel1: TBevel;
|
||||
PageControl: TPageControl;
|
||||
ParamsPanel: TPanel;
|
||||
@ -56,7 +57,7 @@ type
|
||||
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
@ -467,6 +468,8 @@ begin
|
||||
VarList.Items.Clear;
|
||||
for i := 1 to NoVariables do
|
||||
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
|
||||
FReportFrame.Clear;
|
||||
FChartFrame.Clear;
|
||||
UpdateBtnStates;
|
||||
end;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
object PlotXYFrm: TPlotXYFrm
|
||||
inherited PlotXYFrm: TPlotXYFrm
|
||||
Left = 427
|
||||
Height = 500
|
||||
Top = 175
|
||||
|
@ -9,13 +9,14 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, ExtCtrls, Buttons, ComCtrls,
|
||||
MainUnit, Globals, FunctionsLib, DataProcs, ReportFrameUnit, ChartFrameUnit;
|
||||
MainUnit, Globals, FunctionsLib, DataProcs, BasicStatsFormUnit,
|
||||
ReportFrameUnit, ChartFrameUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TPlotXYFrm }
|
||||
|
||||
TPlotXYFrm = class(TForm)
|
||||
TPlotXYFrm = class(TBasicStatsForm)
|
||||
Bevel1: TBevel;
|
||||
ConfEdit: TEdit;
|
||||
Label4: TLabel;
|
||||
@ -64,7 +65,7 @@ type
|
||||
Xcol,Ycol: Integer): Boolean;
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -1,4 +1,4 @@
|
||||
object XvsMultYForm: TXvsMultYForm
|
||||
inherited XvsMultYForm: TXvsMultYForm
|
||||
Left = 288
|
||||
Height = 500
|
||||
Top = 117
|
||||
|
@ -9,14 +9,14 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, Buttons, ExtCtrls, Printers, ComCtrls,
|
||||
MainUnit, Globals, ContextHelpUnit, DataProcs, MatrixLib,
|
||||
MainUnit, Globals, ContextHelpUnit, DataProcs, MatrixLib, BasicStatsFormUnit,
|
||||
ReportFrameUnit, ChartFrameUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TXvsMultYForm }
|
||||
|
||||
TXvsMultYForm = class(TForm)
|
||||
TXvsMultYForm = class(TBasicStatsForm)
|
||||
Bevel2: TBevel;
|
||||
LinesBox: TCheckBox;
|
||||
GroupBox1: TGroupBox;
|
||||
@ -64,7 +64,7 @@ type
|
||||
procedure UpdateBtnStates;
|
||||
public
|
||||
{ public declarations }
|
||||
procedure Reset;
|
||||
procedure Reset; override;
|
||||
end;
|
||||
|
||||
var
|
||||
|
@ -232,7 +232,9 @@ object OS3MainFrm: TOS3MainFrm
|
||||
TitleFont.Name = 'Courier New'
|
||||
TitleFont.Pitch = fpFixed
|
||||
TitleFont.Quality = fqDraft
|
||||
OnCellProcess = DataGridCellProcess
|
||||
OnClick = DataGridClick
|
||||
OnEditingDone = DataGridEditingDone
|
||||
OnKeyDown = DataGridKeyDown
|
||||
OnKeyPress = DataGridKeyPress
|
||||
OnPrepareCanvas = DataGridPrepareCanvas
|
||||
|
@ -21,7 +21,7 @@ unit MainUnit;
|
||||
interface
|
||||
|
||||
uses
|
||||
LCLType, Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics,
|
||||
LCLType, Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
|
||||
Dialogs, Menus, ExtCtrls, StdCtrls, Grids,
|
||||
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
|
||||
{$IFDEF MSWINDOWS}
|
||||
@ -285,6 +285,9 @@ type
|
||||
DataGrid: TStringGrid;
|
||||
|
||||
// Form event handlers
|
||||
procedure DataGridCellProcess(Sender: TObject; aCol, aRow: Integer;
|
||||
processType: TCellProcessType; var aValue: string);
|
||||
procedure DataGridEditingDone(Sender: TObject);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
@ -492,6 +495,7 @@ type
|
||||
LHelpConnector: TLHelpConnector;
|
||||
{$ENDIF}
|
||||
procedure Init;
|
||||
procedure ResetForms;
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
@ -503,8 +507,11 @@ var
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
Utils, OptionsUnit, OutputUnit, LicenseUnit, TransFrmUnit, DescriptiveUnit,
|
||||
Utils, BasicStatsFormUnit,
|
||||
OptionsUnit, OutputUnit, LicenseUnit, TransFrmUnit, DescriptiveUnit,
|
||||
FreqUnit, CrossTabUnit, BreakDownUnit, BoxPlotUnit, NormalityUnit, Rot3DUnit,
|
||||
PlotXYUnit, BubblePlotUnit, StemLeafUnit, MultXvsYUnit, OneSampUnit,
|
||||
TwoCorrsUnit, TwoPropUnit, TtestUnit, BlkAnovaUnit, WithinANOVAUnit,
|
||||
@ -548,6 +555,18 @@ begin
|
||||
CanClose := (res = mrYes);
|
||||
end;
|
||||
|
||||
procedure TOS3MainFrm.DataGridEditingDone(Sender: TObject);
|
||||
begin
|
||||
ResetForms;
|
||||
end;
|
||||
|
||||
procedure TOS3MainFrm.DataGridCellProcess(Sender: TObject; aCol, aRow: Integer;
|
||||
processType: TCellProcessType; var aValue: string);
|
||||
begin
|
||||
if ProcessType = cpPaste then
|
||||
ResetForms;
|
||||
end;
|
||||
|
||||
procedure TOS3MainFrm.FormCreate(Sender: TObject);
|
||||
var
|
||||
helpfn: String;
|
||||
@ -1243,6 +1262,8 @@ begin
|
||||
|
||||
NoVarsEdit.Text := IntToStr(DataGrid.ColCount-1);
|
||||
NoCasesEdit.Text := IntToStr(DataGrid.RowCount-1);
|
||||
|
||||
ResetForms;
|
||||
end;
|
||||
|
||||
// Menu "Edit" > "Copy Block of Cells"
|
||||
@ -1342,76 +1363,45 @@ end;
|
||||
procedure TOS3MainFrm.mnuFileImportCSVClick(Sender: TObject);
|
||||
begin
|
||||
OpenCommaFile;
|
||||
ResetForms;
|
||||
end;
|
||||
|
||||
// Menu "File" > "Import" > "SPACE File"
|
||||
procedure TOS3MainFrm.mnuFileImportSSVClick(Sender: TObject);
|
||||
begin
|
||||
OpenSpaceFile;
|
||||
ResetForms;
|
||||
end;
|
||||
|
||||
// Menu "File" > "Import" > "TAB File"
|
||||
procedure TOS3MainFrm.mnuFileImportTABClick(Sender: TObject);
|
||||
begin
|
||||
OpenTabFile;
|
||||
ResetForms;
|
||||
end;
|
||||
|
||||
// Menu "File" > "New"
|
||||
procedure TOS3MainFrm.mnuFileNewClick(Sender: TObject);
|
||||
begin
|
||||
ClearGrid;
|
||||
ResetForms;
|
||||
end;
|
||||
|
||||
// Menu "File" > "Open"
|
||||
procedure TOS3MainFrm.mnuFileOpenClick(Sender: TObject);
|
||||
{
|
||||
var
|
||||
i : integer;
|
||||
filename : string;
|
||||
}
|
||||
begin
|
||||
OpenOS2File;
|
||||
SaveOptions;
|
||||
(*
|
||||
filename := FileNameEdit.Text;
|
||||
// move all down 1 and add new one at the top
|
||||
{ for i := 8 downto 1 do
|
||||
begin
|
||||
MainMenu.Items[0].Items[11].Items[i].Caption :=
|
||||
MainMenu.Items[0].Items[11].Items[i-1].Caption;
|
||||
MainMenu.Items[0].Items[11].Items[i-1].Caption := ' ';
|
||||
end;
|
||||
MainMenu.Items[0].Items[11].Items[0].Caption := filename;}
|
||||
if OptionsFrm = nil then
|
||||
Application.CreateForm(TOptionsFrm, OptionsFrm);
|
||||
OptionsFrm.SaveBtnClick(Self);
|
||||
*)
|
||||
if OpenOS2File then
|
||||
begin
|
||||
SaveOptions;
|
||||
ResetForms;
|
||||
end;
|
||||
end;
|
||||
|
||||
// Menu "File" > "Save"
|
||||
procedure TOS3MainFrm.mnuFileSaveClick(Sender: TObject);
|
||||
(*
|
||||
var
|
||||
i : integer;
|
||||
filename : string;
|
||||
*)
|
||||
begin
|
||||
SaveOS2File;
|
||||
SaveOptions;
|
||||
(*
|
||||
filename := FileNameEdit.Text;
|
||||
// move all down 1 and add new one at the top
|
||||
{ for i := 8 downto 1 do
|
||||
begin
|
||||
MainMenu.Items[0].Items[11].Items[i].Caption :=
|
||||
MainMenu.Items[0].Items[11].Items[i-1].Caption;
|
||||
MainMenu.Items[0].Items[11].Items[i-1].Caption := ' ';
|
||||
end;
|
||||
MainMenu.Items[0].Items[11].Items[0].Caption := filename;}
|
||||
if OptionsFrm = nil then
|
||||
Application.CreateForm(TOptionsFrm, OptionsFrm);
|
||||
OptionsFrm.SaveBtnClick(Self);
|
||||
*)
|
||||
end;
|
||||
|
||||
// Menu "Help" > "About"
|
||||
@ -2209,10 +2199,15 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TOS3MainFrm.ResetForms;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to Screen.FormCount-1 do
|
||||
if Screen.Forms[i] is TBasicStatsForm then
|
||||
TBasicStatsForm(Screen.Forms[i]).Reset;
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
{$I mainunit.lrs}
|
||||
|
||||
end.
|
||||
|
||||
|
@ -0,0 +1,8 @@
|
||||
object BasicStatsForm: TBasicStatsForm
|
||||
Left = 519
|
||||
Height = 459
|
||||
Top = 260
|
||||
Width = 717
|
||||
Caption = 'BasicStatsForm'
|
||||
LCLVersion = '2.1.0.0'
|
||||
end
|
@ -0,0 +1,32 @@
|
||||
unit BasicStatsFormUnit;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs;
|
||||
|
||||
type
|
||||
TBasicStatsForm = class(TForm)
|
||||
private
|
||||
|
||||
public
|
||||
procedure Reset; virtual;
|
||||
|
||||
end;
|
||||
|
||||
var
|
||||
BasicStatsForm: TBasicStatsForm;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
procedure TBasicStatsForm.Reset;
|
||||
begin
|
||||
// to be overridden
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -15,8 +15,8 @@ procedure FormatGrid;
|
||||
function IsNumeric(s : string) : boolean;
|
||||
procedure VecPrint(vector: IntDyneVec; Size: integer; Heading: string; AReport: TStrings);
|
||||
procedure SaveOS2File;
|
||||
procedure OpenOS2File;
|
||||
procedure OpenOS2File(const AFileName: String; ShowDictionaryForm: Boolean);
|
||||
function OpenOS2File: Boolean;
|
||||
function OpenOS2File(const AFileName: String; ShowDictionaryForm: Boolean): Boolean;
|
||||
procedure DeleteCol;
|
||||
procedure CopyColumn;
|
||||
procedure PasteColumn;
|
||||
@ -276,8 +276,9 @@ begin
|
||||
end;
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
procedure OpenOS2File;
|
||||
function OpenOS2File: Boolean;
|
||||
begin
|
||||
Result := false;
|
||||
with OS3MainFrm.OpenDialog do
|
||||
begin
|
||||
DefaultExt := '.laz';
|
||||
@ -286,19 +287,20 @@ begin
|
||||
InitialDir := Globals.Options.DefaultDataPath;
|
||||
FilterIndex := 1;
|
||||
if Execute then begin
|
||||
OpenOS2File(FileName, true);
|
||||
Result := OpenOS2File(FileName, true);
|
||||
InitialDir := ExtractFilePath(FileName);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure OpenOS2File(const AFileName: String; ShowDictionaryForm: Boolean);
|
||||
function OpenOS2File(const AFileName: String; ShowDictionaryForm: Boolean): Boolean;
|
||||
var
|
||||
F: TextFile;
|
||||
s: string;
|
||||
i, j: integer;
|
||||
NRows, NCols: integer;
|
||||
begin
|
||||
Result := false;
|
||||
if Lowercase(ExtractFileExt(AFileName)) <> '.laz' then
|
||||
begin
|
||||
MessageDlg(Format('"%s" is not a .laz file.', [AFileName]), mtError, [mbOK], 0);
|
||||
@ -374,6 +376,7 @@ begin
|
||||
if ShowDictionaryForm then
|
||||
DictionaryFrm.ShowModal;
|
||||
FormatGrid;
|
||||
Result := true;
|
||||
end;
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
|
Reference in New Issue
Block a user