You've already forked lazarus-ccr
LazStats: Add SPC template form. Replace old SigmaChartUnit by SChartUnit based on template. Some cosmetics in MainForm menu items.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7653 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -49,7 +49,7 @@
|
||||
<PackageName Value="LCL"/>
|
||||
</Item7>
|
||||
</RequiredPackages>
|
||||
<Units Count="174">
|
||||
<Units Count="175">
|
||||
<Unit0>
|
||||
<Filename Value="LazStats.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
@ -760,659 +760,667 @@
|
||||
<UnitName Value="RChartUnit"/>
|
||||
</Unit90>
|
||||
<Unit91>
|
||||
<Filename Value="forms\analysis\statistical_process_control\sigmachartunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SigmaChartFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SigmaChartUnit"/>
|
||||
</Unit91>
|
||||
<Unit92>
|
||||
<Filename Value="forms\analysis\statistical_process_control\cumsumunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="CUMSUMFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="CUMSUMUnit"/>
|
||||
</Unit92>
|
||||
<Unit93>
|
||||
</Unit91>
|
||||
<Unit92>
|
||||
<Filename Value="forms\analysis\statistical_process_control\cchartunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="cChartFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="CChartUnit"/>
|
||||
</Unit93>
|
||||
<Unit94>
|
||||
</Unit92>
|
||||
<Unit93>
|
||||
<Filename Value="forms\analysis\statistical_process_control\pchartunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="pChartFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="PChartUnit"/>
|
||||
</Unit94>
|
||||
<Unit95>
|
||||
</Unit93>
|
||||
<Unit94>
|
||||
<Filename Value="forms\analysis\statistical_process_control\uchartunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="UChartFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="UChartUnit"/>
|
||||
</Unit95>
|
||||
<Unit96>
|
||||
</Unit94>
|
||||
<Unit95>
|
||||
<Filename Value="forms\simulations\corsimunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="CorSimFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="CorSimUnit"/>
|
||||
</Unit96>
|
||||
<Unit97>
|
||||
</Unit95>
|
||||
<Unit96>
|
||||
<Filename Value="forms\simulations\multgenunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MultGenFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="MultGenUnit"/>
|
||||
</Unit97>
|
||||
<Unit98>
|
||||
</Unit96>
|
||||
<Unit97>
|
||||
<Filename Value="forms\simulations\errorcurvesunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ErrorCurvesFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ErrorCurvesUnit"/>
|
||||
</Unit98>
|
||||
<Unit99>
|
||||
</Unit97>
|
||||
<Unit98>
|
||||
<Filename Value="forms\simulations\pcurvesunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="PCurvesFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="PCurvesUnit"/>
|
||||
</Unit99>
|
||||
<Unit100>
|
||||
</Unit98>
|
||||
<Unit99>
|
||||
<Filename Value="forms\simulations\distribunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="DistribFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="DistribUnit"/>
|
||||
</Unit100>
|
||||
<Unit101>
|
||||
</Unit99>
|
||||
<Unit100>
|
||||
<Filename Value="forms\simulations\gensequnit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="GenSeqFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="GenSeqUnit"/>
|
||||
</Unit101>
|
||||
<Unit102>
|
||||
</Unit100>
|
||||
<Unit101>
|
||||
<Filename Value="forms\simulations\genrndvalsunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="GenRndValsFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="GenRndValsUnit"/>
|
||||
</Unit102>
|
||||
<Unit103>
|
||||
</Unit101>
|
||||
<Unit102>
|
||||
<Filename Value="forms\analysis\financial\loanitunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="LoanItFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="LoanItUnit"/>
|
||||
</Unit103>
|
||||
<Unit104>
|
||||
</Unit102>
|
||||
<Unit103>
|
||||
<Filename Value="forms\analysis\financial\sumyrsdepunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SumYrsDepFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SumYrsDepUnit"/>
|
||||
</Unit104>
|
||||
<Unit105>
|
||||
</Unit103>
|
||||
<Unit104>
|
||||
<Filename Value="forms\analysis\financial\sldunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SLDepFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SLDUnit"/>
|
||||
</Unit105>
|
||||
<Unit106>
|
||||
</Unit104>
|
||||
<Unit105>
|
||||
<Filename Value="forms\analysis\financial\dbldeclineunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="DblDeclineFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="DblDeclineUnit"/>
|
||||
</Unit106>
|
||||
<Unit107>
|
||||
</Unit105>
|
||||
<Unit106>
|
||||
<Filename Value="forms\analysis\nonparametric\riditunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="RIDITFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RIDITUnit"/>
|
||||
</Unit107>
|
||||
<Unit108>
|
||||
</Unit106>
|
||||
<Unit107>
|
||||
<Filename Value="forms\analysis\multiple_regression\twoslsunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="TwoSLSFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="TwoSLSUnit"/>
|
||||
</Unit108>
|
||||
<Unit109>
|
||||
</Unit107>
|
||||
<Unit108>
|
||||
<Filename Value="forms\analysis\multiple_regression\wlsunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="WLSFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="WLSUnit"/>
|
||||
</Unit109>
|
||||
<Unit110>
|
||||
</Unit108>
|
||||
<Unit109>
|
||||
<Filename Value="forms\analysis\multivariate\avglinkunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="AvgLinkFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="AvgLinkUnit"/>
|
||||
</Unit110>
|
||||
<Unit111>
|
||||
</Unit109>
|
||||
<Unit110>
|
||||
<Filename Value="forms\tools\sortcasesunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SortCasesFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SortCasesUnit"/>
|
||||
</Unit111>
|
||||
<Unit112>
|
||||
</Unit110>
|
||||
<Unit111>
|
||||
<Filename Value="forms\tools\selectcasesunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SelectFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SelectCasesUnit"/>
|
||||
</Unit112>
|
||||
<Unit113>
|
||||
</Unit111>
|
||||
<Unit112>
|
||||
<Filename Value="forms\tools\selectifunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SelectIfFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SelectIfUnit"/>
|
||||
</Unit113>
|
||||
<Unit114>
|
||||
</Unit112>
|
||||
<Unit113>
|
||||
<Filename Value="forms\tools\randomsampunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="RandomSampFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RandomSampUnit"/>
|
||||
</Unit114>
|
||||
<Unit115>
|
||||
</Unit113>
|
||||
<Unit114>
|
||||
<Filename Value="forms\tools\rangeselectunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="RangeSelectFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RangeSelectUnit"/>
|
||||
</Unit115>
|
||||
<Unit116>
|
||||
</Unit114>
|
||||
<Unit115>
|
||||
<Filename Value="forms\help\gridhelpunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="GridHelpFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="GridHelpUnit"/>
|
||||
</Unit116>
|
||||
<Unit117>
|
||||
</Unit115>
|
||||
<Unit116>
|
||||
<Filename Value="forms\variables\recodeunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="RecodeFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RecodeUnit"/>
|
||||
</Unit117>
|
||||
<Unit118>
|
||||
</Unit116>
|
||||
<Unit117>
|
||||
<Filename Value="forms\analysis\nonparametric\kappaunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="WeightedKappaFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="KappaUnit"/>
|
||||
</Unit118>
|
||||
<Unit119>
|
||||
</Unit117>
|
||||
<Unit118>
|
||||
<Filename Value="forms\analysis\multivariate\kmeansunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="KMeansFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="KMeansUnit"/>
|
||||
</Unit119>
|
||||
<Unit120>
|
||||
</Unit118>
|
||||
<Unit119>
|
||||
<Filename Value="forms\analysis\multivariate\singlelinkunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SingleLinkFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SingleLinkUnit"/>
|
||||
</Unit120>
|
||||
<Unit121>
|
||||
</Unit119>
|
||||
<Unit120>
|
||||
<Filename Value="forms\analysis\nonparametric\genkappaunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="GenKappaFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="GenKappaUnit"/>
|
||||
</Unit121>
|
||||
<Unit122>
|
||||
</Unit120>
|
||||
<Unit121>
|
||||
<Filename Value="forms\analysis\matrix_manipulation\matmanunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MatManFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="MatManUnit"/>
|
||||
</Unit122>
|
||||
<Unit123>
|
||||
</Unit121>
|
||||
<Unit122>
|
||||
<Filename Value="forms\analysis\matrix_manipulation\scripteditorunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ScriptEditorFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ScriptEditorUnit"/>
|
||||
</Unit123>
|
||||
<Unit124>
|
||||
</Unit122>
|
||||
<Unit123>
|
||||
<Filename Value="forms\analysis\matrix_manipulation\rootmethodunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="RootMethodFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RootMethodUnit"/>
|
||||
</Unit124>
|
||||
<Unit125>
|
||||
</Unit123>
|
||||
<Unit124>
|
||||
<Filename Value="forms\analysis\matrix_manipulation\scriptoptsunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ScriptOptsFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ScriptOptsUnit"/>
|
||||
</Unit125>
|
||||
<Unit126>
|
||||
</Unit124>
|
||||
<Unit125>
|
||||
<Filename Value="forms\analysis\matrix_manipulation\colinsertunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ColInsertFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ColInsertUnit"/>
|
||||
</Unit126>
|
||||
<Unit127>
|
||||
</Unit125>
|
||||
<Unit126>
|
||||
<Filename Value="forms\analysis\matrix_manipulation\rowinsertunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="RowInsertFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RowInsertUnit"/>
|
||||
</Unit127>
|
||||
<Unit128>
|
||||
</Unit126>
|
||||
<Unit127>
|
||||
<Filename Value="forms\analysis\measurement_programs\gradebookunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="GradebookFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="GradeBookUnit"/>
|
||||
</Unit128>
|
||||
<Unit129>
|
||||
</Unit127>
|
||||
<Unit128>
|
||||
<Filename Value="forms\analysis\measurement_programs\gradingunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="GradingFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="GradingUnit"/>
|
||||
</Unit129>
|
||||
<Unit130>
|
||||
</Unit128>
|
||||
<Unit129>
|
||||
<Filename Value="forms\simulations\probzunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ProbzForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ProbZUnit"/>
|
||||
</Unit130>
|
||||
<Unit131>
|
||||
</Unit129>
|
||||
<Unit130>
|
||||
<Filename Value="forms\simulations\probsmallerzunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ProbSmallerzForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ProbSmallerZUnit"/>
|
||||
</Unit131>
|
||||
<Unit132>
|
||||
</Unit130>
|
||||
<Unit131>
|
||||
<Filename Value="forms\simulations\twozprobunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="TwozProbForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="TwoZProbUnit"/>
|
||||
</Unit132>
|
||||
<Unit133>
|
||||
</Unit131>
|
||||
<Unit132>
|
||||
<Filename Value="forms\simulations\inversezunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="InversezForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="InverseZUnit"/>
|
||||
</Unit133>
|
||||
<Unit134>
|
||||
</Unit132>
|
||||
<Unit133>
|
||||
<Filename Value="forms\simulations\probchisqrunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ChiSqrProbForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ProbChiSqrUnit"/>
|
||||
</Unit134>
|
||||
<Unit135>
|
||||
</Unit133>
|
||||
<Unit134>
|
||||
<Filename Value="forms\simulations\tprobunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="TprobForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="tProbUnit"/>
|
||||
</Unit135>
|
||||
<Unit136>
|
||||
</Unit134>
|
||||
<Unit135>
|
||||
<Filename Value="forms\simulations\fprobunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="FForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="FProbUnit"/>
|
||||
</Unit136>
|
||||
<Unit137>
|
||||
</Unit135>
|
||||
<Unit136>
|
||||
<Filename Value="forms\simulations\hypergeounit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="HyperGeoForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="HyperGeoUnit"/>
|
||||
</Unit137>
|
||||
<Unit138>
|
||||
</Unit136>
|
||||
<Unit137>
|
||||
<Filename Value="forms\analysis\comparisons\bnestaunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="BNestedAForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="BNestAUnit"/>
|
||||
</Unit138>
|
||||
<Unit139>
|
||||
</Unit137>
|
||||
<Unit138>
|
||||
<Filename Value="forms\analysis\comparisons\abcnestedunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ABCNestedForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ABCNestedUnit"/>
|
||||
</Unit139>
|
||||
<Unit140>
|
||||
</Unit138>
|
||||
<Unit139>
|
||||
<Filename Value="forms\analysis\multivariate\bartletttestunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="BartlettTestForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="BartlettTestUnit"/>
|
||||
</Unit140>
|
||||
<Unit141>
|
||||
</Unit139>
|
||||
<Unit140>
|
||||
<Filename Value="forms\tools\datasmoothunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SmoothDataForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="DataSmoothUnit"/>
|
||||
</Unit141>
|
||||
<Unit142>
|
||||
</Unit140>
|
||||
<Unit141>
|
||||
<Filename Value="forms\analysis\descriptive\groupfrequnit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="GroupFreqForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="GroupFreqUnit"/>
|
||||
</Unit142>
|
||||
<Unit143>
|
||||
</Unit141>
|
||||
<Unit142>
|
||||
<Filename Value="forms\analysis\nonparametric\runstestunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="runstestform"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RunsTestUnit"/>
|
||||
</Unit143>
|
||||
<Unit144>
|
||||
</Unit142>
|
||||
<Unit143>
|
||||
<Filename Value="forms\analysis\descriptive\xvsmultyunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="XvsMultYForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="XvsMultYUnit"/>
|
||||
</Unit144>
|
||||
<Unit145>
|
||||
</Unit143>
|
||||
<Unit144>
|
||||
<Filename Value="forms\analysis\nonparametric\sensunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SensForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SensUnit"/>
|
||||
</Unit145>
|
||||
<Unit146>
|
||||
</Unit144>
|
||||
<Unit145>
|
||||
<Filename Value="forms\analysis\multivariate\correspondenceunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="CorrespondenceForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="CorrespondenceUnit"/>
|
||||
</Unit146>
|
||||
<Unit147>
|
||||
</Unit145>
|
||||
<Unit146>
|
||||
<Filename Value="forms\analysis\descriptive\comparedistunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="CompareDistFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="CompareDistUnit"/>
|
||||
</Unit147>
|
||||
<Unit148>
|
||||
</Unit146>
|
||||
<Unit147>
|
||||
<Filename Value="forms\variables\equationunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="EquationForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="EquationUnit"/>
|
||||
</Unit148>
|
||||
<Unit149>
|
||||
</Unit147>
|
||||
<Unit148>
|
||||
<Filename Value="forms\misc\contexthelpunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ContextHelpForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ContextHelpUnit"/>
|
||||
</Unit149>
|
||||
<Unit150>
|
||||
</Unit148>
|
||||
<Unit149>
|
||||
<Filename Value="forms\tools\calculatorunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="CalculatorForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="CalculatorUnit"/>
|
||||
</Unit150>
|
||||
<Unit151>
|
||||
</Unit149>
|
||||
<Unit150>
|
||||
<Filename Value="forms\tools\jpegunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="JPEGform"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="JpegUnit"/>
|
||||
</Unit151>
|
||||
<Unit152>
|
||||
</Unit150>
|
||||
<Unit151>
|
||||
<Filename Value="forms\analysis\descriptive\resistancelineunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ResistanceLineForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ResistanceLineUnit"/>
|
||||
</Unit152>
|
||||
<Unit153>
|
||||
</Unit151>
|
||||
<Unit152>
|
||||
<Filename Value="forms\analysis\multivariate\medianpolishunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MedianPolishForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="MedianPolishUnit"/>
|
||||
</Unit153>
|
||||
<Unit154>
|
||||
</Unit152>
|
||||
<Unit153>
|
||||
<Filename Value="forms\analysis\comparisons\onecaseanovaunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="OneCaseAnovaForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="OneCaseANOVAUnit"/>
|
||||
</Unit154>
|
||||
<Unit155>
|
||||
</Unit153>
|
||||
<Unit154>
|
||||
<Filename Value="forms\analysis\descriptive\smoothdataunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="DataSmoothingForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SmoothDataUnit"/>
|
||||
</Unit155>
|
||||
<Unit156>
|
||||
</Unit154>
|
||||
<Unit155>
|
||||
<Filename Value="forms\analysis\nonparametric\srhtestunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SRHTest"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SRHTestUnit"/>
|
||||
</Unit156>
|
||||
<Unit157>
|
||||
</Unit155>
|
||||
<Unit156>
|
||||
<Filename Value="forms\help\aboutunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="AboutBox"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="AboutUnit"/>
|
||||
</Unit157>
|
||||
<Unit158>
|
||||
</Unit156>
|
||||
<Unit157>
|
||||
<Filename Value="forms\analysis\measurement_programs\item_banking\itembankingunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ItemBankFrm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ItemBankingUnit"/>
|
||||
</Unit158>
|
||||
<Unit159>
|
||||
</Unit157>
|
||||
<Unit158>
|
||||
<Filename Value="forms\analysis\measurement_programs\item_banking\itemcodesunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="CodesForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ItemCodesUnit"/>
|
||||
</Unit159>
|
||||
<Unit160>
|
||||
</Unit158>
|
||||
<Unit159>
|
||||
<Filename Value="forms\analysis\measurement_programs\item_banking\tfitemunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="TFItemForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="TFItemUnit"/>
|
||||
</Unit160>
|
||||
<Unit161>
|
||||
</Unit159>
|
||||
<Unit160>
|
||||
<Filename Value="forms\analysis\measurement_programs\item_banking\essayitemunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="EssayItemForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="EssayItemUnit"/>
|
||||
</Unit161>
|
||||
<Unit162>
|
||||
</Unit160>
|
||||
<Unit161>
|
||||
<Filename Value="forms\analysis\measurement_programs\item_banking\mcitemunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MCItemForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="MCItemUnit"/>
|
||||
</Unit162>
|
||||
<Unit163>
|
||||
</Unit161>
|
||||
<Unit162>
|
||||
<Filename Value="forms\analysis\measurement_programs\item_banking\matchitemunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MatchItemForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="MatchItemUnit"/>
|
||||
</Unit163>
|
||||
<Unit164>
|
||||
</Unit162>
|
||||
<Unit163>
|
||||
<Filename Value="forms\analysis\measurement_programs\item_banking\testspecsunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="TestSpecsForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="TestSpecsUnit"/>
|
||||
</Unit164>
|
||||
<Unit165>
|
||||
</Unit163>
|
||||
<Unit164>
|
||||
<Filename Value="forms\analysis\nonparametric\simplechisqrunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SimpleChiSqrForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SimpleChiSqrUnit"/>
|
||||
</Unit165>
|
||||
<Unit166>
|
||||
</Unit164>
|
||||
<Unit165>
|
||||
<Filename Value="forms\analysis\nonparametric\lifetableunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="LifeTableForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="LifeTableUnit"/>
|
||||
</Unit166>
|
||||
<Unit167>
|
||||
</Unit165>
|
||||
<Unit166>
|
||||
<Filename Value="forms\analysis\multiple_regression\lsmrunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="LSMregForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="LSMRUnit"/>
|
||||
</Unit167>
|
||||
<Unit168>
|
||||
</Unit166>
|
||||
<Unit167>
|
||||
<Filename Value="forms\maindm.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="MainDataModule"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="DataModule"/>
|
||||
<UnitName Value="MainDM"/>
|
||||
</Unit168>
|
||||
<Unit169>
|
||||
</Unit167>
|
||||
<Unit168>
|
||||
<Filename Value="units\utils.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="Utils"/>
|
||||
</Unit169>
|
||||
<Unit170>
|
||||
</Unit168>
|
||||
<Unit169>
|
||||
<Filename Value="LazStats.inc"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit170>
|
||||
<Unit171>
|
||||
</Unit169>
|
||||
<Unit170>
|
||||
<Filename Value="forms\misc\chartunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ChartForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="ChartUnit"/>
|
||||
</Unit171>
|
||||
<Unit172>
|
||||
</Unit170>
|
||||
<Unit171>
|
||||
<Filename Value="units\mathunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="MathUnit"/>
|
||||
</Unit172>
|
||||
<Unit173>
|
||||
</Unit171>
|
||||
<Unit172>
|
||||
<Filename Value="frames\chartframeunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="ChartFrame"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Frame"/>
|
||||
<UnitName Value="ChartFrameUnit"/>
|
||||
</Unit172>
|
||||
<Unit173>
|
||||
<Filename Value="forms\analysis\statistical_process_control\basicspcunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="BasicSPCForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="BasicSPCUnit"/>
|
||||
</Unit173>
|
||||
<Unit174>
|
||||
<Filename Value="forms\analysis\statistical_process_control\schartunit.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="SChartForm"/>
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="SChartUnit"/>
|
||||
</Unit174>
|
||||
</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, MathUnit; //, utils, chartunit;
|
||||
OptionsUnit, MainDM, MainUnit, MathUnit, BasicSPCUnit,
|
||||
SChartUnit; //, utils, chartunit;
|
||||
|
||||
{$R LazStats.res}
|
||||
|
||||
@ -26,7 +27,6 @@ begin
|
||||
else
|
||||
Application.Terminate;
|
||||
end;
|
||||
|
||||
Application.CreateForm(TMainDataModule, MainDataModule);
|
||||
Application.CreateForm(TOS3MainFrm, OS3MainFrm);
|
||||
Application.Run;
|
||||
|
@ -0,0 +1,298 @@
|
||||
object BasicSPCForm: TBasicSPCForm
|
||||
Left = 535
|
||||
Height = 438
|
||||
Top = 241
|
||||
Width = 927
|
||||
Caption = 'SPC Form'
|
||||
ClientHeight = 438
|
||||
ClientWidth = 927
|
||||
OnActivate = FormActivate
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
LCLVersion = '2.1.0.0'
|
||||
object SpecsPanel: TPanel
|
||||
Left = 0
|
||||
Height = 438
|
||||
Top = 0
|
||||
Width = 357
|
||||
Align = alLeft
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 438
|
||||
ClientWidth = 357
|
||||
TabOrder = 0
|
||||
object ButtonPanel: TPanel
|
||||
Left = 0
|
||||
Height = 42
|
||||
Top = 396
|
||||
Width = 357
|
||||
Align = alBottom
|
||||
AutoSize = True
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 42
|
||||
ClientWidth = 357
|
||||
TabOrder = 0
|
||||
object CloseBtn: TButton
|
||||
AnchorSideTop.Control = ButtonPanel
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = ButtonPanel
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 302
|
||||
Height = 25
|
||||
Top = 9
|
||||
Width = 55
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
Caption = 'Close'
|
||||
ModalResult = 11
|
||||
OnClick = CloseBtnClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object ComputeBtn: TButton
|
||||
AnchorSideTop.Control = ButtonPanel
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = CloseBtn
|
||||
Left = 218
|
||||
Height = 25
|
||||
Top = 9
|
||||
Width = 76
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Around = 8
|
||||
Caption = 'Compute'
|
||||
OnClick = ComputeBtnClick
|
||||
TabOrder = 1
|
||||
end
|
||||
object ResetBtn: TButton
|
||||
AnchorSideTop.Control = ButtonPanel
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = ComputeBtn
|
||||
Left = 156
|
||||
Height = 25
|
||||
Top = 9
|
||||
Width = 54
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Around = 8
|
||||
Caption = 'Reset'
|
||||
OnClick = ResetBtnClick
|
||||
TabOrder = 2
|
||||
end
|
||||
object HelpBtn: TButton
|
||||
AnchorSideTop.Control = ButtonPanel
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = ResetBtn
|
||||
Left = 105
|
||||
Height = 25
|
||||
Top = 9
|
||||
Width = 43
|
||||
Anchors = [akTop, akRight]
|
||||
BorderSpacing.Around = 8
|
||||
Caption = 'Help'
|
||||
OnClick = HelpBtnClick
|
||||
TabOrder = 3
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
AnchorSideLeft.Control = ButtonPanel
|
||||
AnchorSideTop.Control = ButtonPanel
|
||||
AnchorSideRight.Control = ButtonPanel
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 8
|
||||
Height = 4
|
||||
Top = 0
|
||||
Width = 349
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 8
|
||||
Shape = bsTopLine
|
||||
end
|
||||
end
|
||||
object VarListLabel: TLabel
|
||||
AnchorSideLeft.Control = SpecsPanel
|
||||
AnchorSideTop.Control = SpecsPanel
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 8
|
||||
Width = 97
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Selection Variables'
|
||||
ParentColor = False
|
||||
end
|
||||
object VarList: TListBox
|
||||
AnchorSideLeft.Control = SpecsPanel
|
||||
AnchorSideTop.Control = VarListLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Bevel2
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = ButtonPanel
|
||||
Left = 8
|
||||
Height = 363
|
||||
Top = 25
|
||||
Width = 174
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 2
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ItemHeight = 0
|
||||
OnClick = VarListClick
|
||||
TabOrder = 1
|
||||
end
|
||||
object GroupLabel: TLabel
|
||||
AnchorSideLeft.Control = VarList
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = VarListLabel
|
||||
Left = 190
|
||||
Height = 15
|
||||
Top = 8
|
||||
Width = 105
|
||||
BorderSpacing.Bottom = 2
|
||||
Caption = 'Group (Lot) Variable'
|
||||
ParentColor = False
|
||||
end
|
||||
object GroupEdit: TEdit
|
||||
AnchorSideLeft.Control = VarList
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = GroupLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = SpecsPanel
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 190
|
||||
Height = 23
|
||||
Top = 25
|
||||
Width = 167
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 2
|
||||
BorderSpacing.Bottom = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 2
|
||||
Text = 'GroupEdit'
|
||||
end
|
||||
object MeasLabel: TLabel
|
||||
AnchorSideLeft.Control = VarList
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = GroupEdit
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 190
|
||||
Height = 15
|
||||
Top = 56
|
||||
Width = 117
|
||||
BorderSpacing.Bottom = 2
|
||||
Caption = 'Measurement Variable'
|
||||
ParentColor = False
|
||||
end
|
||||
object MeasEdit: TEdit
|
||||
AnchorSideLeft.Control = VarList
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = MeasLabel
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = SpecsPanel
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 190
|
||||
Height = 23
|
||||
Top = 73
|
||||
Width = 167
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 2
|
||||
BorderSpacing.Bottom = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 3
|
||||
Text = 'MeasEdit'
|
||||
end
|
||||
object Bevel2: TBevel
|
||||
AnchorSideLeft.Control = SpecsPanel
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
Left = 167
|
||||
Height = 9
|
||||
Top = 0
|
||||
Width = 23
|
||||
Shape = bsSpacer
|
||||
end
|
||||
end
|
||||
object SpecsSplitter: TSplitter
|
||||
Left = 357
|
||||
Height = 438
|
||||
Top = 0
|
||||
Width = 5
|
||||
ResizeStyle = rsPattern
|
||||
end
|
||||
object PageControl1: TPageControl
|
||||
Left = 368
|
||||
Height = 426
|
||||
Top = 6
|
||||
Width = 553
|
||||
ActivePage = ReportPage
|
||||
Align = alClient
|
||||
BorderSpacing.Around = 6
|
||||
TabIndex = 0
|
||||
TabOrder = 2
|
||||
object ReportPage: TTabSheet
|
||||
Caption = 'Report'
|
||||
ClientHeight = 398
|
||||
ClientWidth = 545
|
||||
object Panel1: TPanel
|
||||
Left = 6
|
||||
Height = 386
|
||||
Top = 6
|
||||
Width = 533
|
||||
Align = alClient
|
||||
BorderSpacing.Around = 6
|
||||
BevelOuter = bvNone
|
||||
BorderStyle = bsSingle
|
||||
ClientHeight = 382
|
||||
ClientWidth = 529
|
||||
TabOrder = 0
|
||||
object ReportMemo: TMemo
|
||||
Left = 0
|
||||
Height = 382
|
||||
Top = 0
|
||||
Width = 529
|
||||
Align = alClient
|
||||
BorderStyle = bsNone
|
||||
Font.Height = -11
|
||||
Font.Name = 'Courier New'
|
||||
ParentFont = False
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
object ChartPage: TTabSheet
|
||||
Caption = 'Chart'
|
||||
ClientHeight = 398
|
||||
ClientWidth = 545
|
||||
object ToolBar1: TToolBar
|
||||
Left = 517
|
||||
Height = 386
|
||||
Top = 6
|
||||
Width = 24
|
||||
Align = alRight
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 6
|
||||
BorderSpacing.Right = 4
|
||||
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
|
@ -0,0 +1,347 @@
|
||||
unit BasicSPCUnit;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||
StdCtrls, ComCtrls,
|
||||
Globals, MainUnit, ContextHelpUnit, ChartFrameUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TBasicSPCForm }
|
||||
|
||||
TBasicSPCForm = class(TForm)
|
||||
Bevel1: TBevel;
|
||||
Bevel2: TBevel;
|
||||
GroupEdit: TEdit;
|
||||
HelpBtn: TButton;
|
||||
GroupLabel: TLabel;
|
||||
MeasLabel: TLabel;
|
||||
MeasEdit: TEdit;
|
||||
ReportMemo: TMemo;
|
||||
PageControl1: TPageControl;
|
||||
Panel1: TPanel;
|
||||
ResetBtn: TButton;
|
||||
ComputeBtn: TButton;
|
||||
CloseBtn: TButton;
|
||||
SpecsPanel: TPanel;
|
||||
ButtonPanel: TPanel;
|
||||
SpecsSplitter: TSplitter;
|
||||
ReportPage: TTabSheet;
|
||||
ChartPage: TTabSheet;
|
||||
tbPrint: TToolButton;
|
||||
tbSave: TToolButton;
|
||||
ToolBar1: TToolBar;
|
||||
VarList: TListBox;
|
||||
VarListLabel: TLabel;
|
||||
procedure CloseBtnClick(Sender: TObject);
|
||||
procedure ComputeBtnClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
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
|
||||
|
||||
protected
|
||||
GrpVar: Integer;
|
||||
MeasVar: Integer;
|
||||
function GetGroups: StrDyneVec;
|
||||
function GetFileName: String;
|
||||
procedure PlotMeans(ATitle, AXTitle, AYTitle, ADataTitle, AGrandMeanTitle: String;
|
||||
const Groups: StrDyneVec; const Means, StdDevs: DblDyneVec;
|
||||
UCL, LCL, GrandMean, TargetSpec, LowerSpec, UpperSpec: double);
|
||||
procedure Reset; virtual;
|
||||
procedure Compute; virtual;
|
||||
function Validate(out AMsg: String; out AControl: TWinControl): Boolean; virtual;
|
||||
|
||||
public
|
||||
FChartFrame: TChartFrame;
|
||||
|
||||
end;
|
||||
|
||||
var
|
||||
BasicSPCForm: TBasicSPCForm;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
Math,
|
||||
TAChartUtils, TALegend, TAChartAxisUtils, TASources, TACustomSeries, TASeries,
|
||||
Utils, DataProcs;
|
||||
|
||||
|
||||
{ TBasicSPCForm }
|
||||
|
||||
procedure TBasicSPCForm.CloseBtnClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.Compute;
|
||||
begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.ComputeBtnClick(Sender: TObject);
|
||||
var
|
||||
msg: String;
|
||||
C: TWinControl;
|
||||
i: Integer;
|
||||
cellString: String;
|
||||
begin
|
||||
if not Validate(msg, C) then begin
|
||||
C.SetFocus;
|
||||
MessageDlg(msg, mtError, [mbOK], 0);
|
||||
exit;
|
||||
end;
|
||||
|
||||
GrpVar := -1;
|
||||
MeasVar := -1;
|
||||
for i := 1 to NoVariables do
|
||||
begin
|
||||
cellstring := OS3MainFrm.DataGrid.Cells[i, 0];
|
||||
if GroupEdit.Visible and (cellstring = GroupEdit.Text) then GrpVar := i;
|
||||
if MeasEdit.Visible and (cellstring = MeasEdit.Text) then MeasVar := i;
|
||||
end;
|
||||
if GroupEdit.Visible and (GrpVar = -1) then
|
||||
begin
|
||||
GroupEdit.SetFocus;
|
||||
ErrorMsg('Group variable not found.');
|
||||
exit;
|
||||
end;
|
||||
if MeasEdit.Visible and (MeasVar = -1) then
|
||||
begin
|
||||
MeasEdit.SetFocus;
|
||||
ErrorMsg('Measurement variable not found.');
|
||||
exit;
|
||||
end;
|
||||
|
||||
Compute;
|
||||
end;
|
||||
|
||||
procedure TBasicSPCForm.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.Left + VarListLabel.Width + MeasLabel.Width,
|
||||
CloseBtn.Left + CloseBtn.Width - HelpBtn.Left + HelpBtn.BorderSpacing.Around
|
||||
);
|
||||
Constraints.MinHeight := MeasEdit.Top + MeasEdit.Height + MeasEdit.BorderSpacing.Bottom + ButtonPanel.Height;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.FormCreate(Sender: TObject);
|
||||
begin
|
||||
Assert(OS3MainFrm <> nil);
|
||||
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;
|
||||
FChartFrame.Chart.Title.TextFormat := tfHtml;
|
||||
with FChartFrame.Chart.AxisList.Add do
|
||||
begin
|
||||
Alignment := calRight;
|
||||
Marks.Source := TListChartSource.Create(self);
|
||||
Marks.Style := smsLabel;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.FormShow(Sender: TObject);
|
||||
begin
|
||||
Reset;
|
||||
end;
|
||||
|
||||
|
||||
function TBasicSPCForm.GetGroups: StrDyneVec;
|
||||
var
|
||||
numGrps: Integer = 0;
|
||||
ColNoSelected: IntDyneVec = nil;
|
||||
grp: String;
|
||||
i: Integer;
|
||||
begin
|
||||
SetLength(ColNoSelected, 2);
|
||||
ColNoSelected[0] := GrpVar;
|
||||
ColNoSelected[1] := MeasVar;
|
||||
SetLength(Result, NoCases);
|
||||
for i := 1 to NoCases do
|
||||
begin
|
||||
if not GoodRecord(i, Length(ColNoSelected), ColNoSelected) then
|
||||
continue;
|
||||
grp := Trim(OS3MainFrm.DataGrid.Cells[GrpVar, i]);
|
||||
if IndexOfString(Result, grp) = -1 then
|
||||
begin
|
||||
Result[numGrps] := grp;
|
||||
inc(numGrps);
|
||||
end;
|
||||
end;
|
||||
SetLength(Result, numGrps);
|
||||
end;
|
||||
|
||||
|
||||
function TBasicSPCForm.GetFileName: String;
|
||||
begin
|
||||
Result := ExtractFileName(OS3MainFrm.FileNameEdit.Text);
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.HelpBtnClick(Sender: TObject);
|
||||
begin
|
||||
if ContextHelpForm = nil then
|
||||
Application.CreateForm(TContextHelpForm, ContextHelpForm);
|
||||
ContextHelpForm.HelpMessage((Sender as TButton).Tag);
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.PlotMeans(ATitle, AXTitle, AYTitle, ADataTitle, AGrandMeanTitle: String;
|
||||
const Groups: StrDyneVec; const Means, StdDevs: DblDyneVec;
|
||||
UCL, LCL, GrandMean, TargetSpec, LowerSpec, UpperSpec: double);
|
||||
const
|
||||
TARGET_COLOR = clBlue;
|
||||
CL_COLOR = clRed;
|
||||
SPEC_COLOR = clGreen;
|
||||
CL_STYLE = psDot;
|
||||
SPEC_STYLE = psSolid;
|
||||
var
|
||||
fn: String;
|
||||
ser: TChartSeries;
|
||||
rightLabels: TListChartSource;
|
||||
constLine: TConstantLine;
|
||||
s: String;
|
||||
begin
|
||||
fn := ExtractFileName(OS3MainFrm.FileNameEdit.Text);
|
||||
rightLabels := FChartFrame.Chart.AxisList[2].Marks.Source as TListChartSource;
|
||||
|
||||
FChartFrame.Clear;
|
||||
FChartFrame.SetTitle(ATitle);
|
||||
FChartFrame.SetXTitle(AXTitle);
|
||||
FChartFrame.SetYTitle(AYTitle);
|
||||
|
||||
ser := FChartFrame.PlotXY(ptSymbols, nil, Means, Groups, StdDevs, ADataTitle, clBlack);
|
||||
FChartFrame.Chart.BottomAxis.Marks.Source := ser.Source;
|
||||
FChartFrame.Chart.BottomAxis.Marks.style := smsLabel;
|
||||
|
||||
FChartFrame.HorLine(GrandMean, clRed, psSolid, AGrandMeanTitle);
|
||||
rightLabels.Add(GrandMean, GrandMean, AGrandMeanTitle);
|
||||
|
||||
FChartFrame.HorLine(UCL, CL_COLOR, CL_STYLE, 'UCL/LCL');
|
||||
rightLabels.Add(UCL, UCL, 'UCL');
|
||||
|
||||
FChartFrame.HorLine(LCL, CL_COLOR, CL_STYLE, '');
|
||||
rightLabels.Add(UCL, LCL, 'LCL');
|
||||
|
||||
if not IsNan(UpperSpec) then
|
||||
begin
|
||||
if IsNaN(LowerSpec) then
|
||||
s := 'Upper Spec'
|
||||
else
|
||||
s := 'Upper/Lower Spec';
|
||||
FChartFrame.HorLine(UpperSpec, SPEC_COLOR, SPEC_STYLE, s);
|
||||
rightLabels.Add(UpperSpec, UpperSpec, 'Upper Spec');
|
||||
end;
|
||||
|
||||
if not IsNaN(TargetSpec) then begin
|
||||
FChartFrame.HorLine(TargetSpec, TARGET_COLOR, psSolid, 'Target');
|
||||
rightLabels.Add(TargetSpec, TargetSpec, 'Target');
|
||||
end;
|
||||
|
||||
if not IsNaN(LowerSpec) then
|
||||
begin
|
||||
if IsNaN(UpperSpec) then
|
||||
s := 'Lower Spec'
|
||||
else
|
||||
s := 'Upper/Lower Spec';
|
||||
constLine := FChartFrame.HorLine(LowerSpec, SPEC_COLOR, SPEC_STYLE, s);
|
||||
constLine.Legend.Visible := not IsNaN(UpperSpec); //UpSpecChk.Checked;
|
||||
rightLabels.Add(LowerSpec, LowerSpec, 'Lower Spec');
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TBasicSPCForm.Reset;
|
||||
var
|
||||
i : integer;
|
||||
begin
|
||||
VarList.Clear;
|
||||
GroupEdit.Text := '';
|
||||
MeasEdit.Text := '';
|
||||
for i := 1 to NoVariables do
|
||||
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
|
||||
FChartFrame.Clear;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.ResetBtnClick(Sender: TObject);
|
||||
begin
|
||||
Reset;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.tbPrintClick(Sender: TObject);
|
||||
begin
|
||||
FChartFrame.Print;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.tbSaveClick(Sender: TObject);
|
||||
begin
|
||||
FChartFrame.Save;
|
||||
end;
|
||||
|
||||
|
||||
function TBasicSPCForm.Validate(out AMsg: String; out AControl: TWinControl): Boolean;
|
||||
var
|
||||
x: Double;
|
||||
begin
|
||||
Result := false;
|
||||
if GroupEdit.Visible and (GroupEdit.Text = '') then begin
|
||||
AMsg := 'Group variable not specified.';
|
||||
AControl := GroupEdit;
|
||||
exit;
|
||||
end;
|
||||
if MeasEdit.Visible and (MeasEdit.Text = '') then
|
||||
begin
|
||||
AMsg := 'Measurement variable not specified.';
|
||||
AControl := MeasEdit;
|
||||
exit;
|
||||
end;
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBasicSPCForm.VarListClick(Sender: TObject);
|
||||
var
|
||||
index: integer;
|
||||
begin
|
||||
index := VarList.ItemIndex;
|
||||
if index > -1 then
|
||||
begin
|
||||
if GroupEdit.Visible and (GroupEdit.Text = '') then
|
||||
GroupEdit.Text := VarList.Items[index]
|
||||
else
|
||||
MeasEdit.Text := VarList.Items[index];
|
||||
VarList.Items.Delete(index);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -0,0 +1,16 @@
|
||||
inherited SChartForm: TSChartForm
|
||||
Caption = 'Sigma Chart'
|
||||
inherited PageControl1: TPageControl
|
||||
inherited ReportPage: TTabSheet
|
||||
inherited Panel1: TPanel
|
||||
inherited ReportMemo: TMemo
|
||||
Left = 4
|
||||
Height = 374
|
||||
Top = 4
|
||||
Width = 521
|
||||
BorderSpacing.Around = 4
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,176 @@
|
||||
unit SChartUnit;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs,
|
||||
BasicSPCUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TSChartForm }
|
||||
|
||||
TSChartForm = class(TBasicSPCForm)
|
||||
private
|
||||
|
||||
protected
|
||||
procedure Compute; override;
|
||||
|
||||
public
|
||||
|
||||
end;
|
||||
|
||||
var
|
||||
SChartForm: TSChartForm;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
|
||||
uses
|
||||
Math, Globals, MathUnit, Utils, MainUnit, DataProcs;
|
||||
|
||||
procedure TSChartForm.Compute;
|
||||
const
|
||||
D3: array[1..24] of double = (
|
||||
0,0,0,0,0,0.076,0.136,0.184,0.223,0.256,0.283,0.307,0.328,
|
||||
0.347,0.363,0.378,0.391,0.403,0.415,0.425,0.434,0.443,
|
||||
0.451,0.459
|
||||
);
|
||||
D4 : array[1..24] of double = (
|
||||
3.267,2.574,2.282,2.114,2.004,1.924,1.864,1.816,1.777,
|
||||
1.744,1.717,1.693,1.672,1.653,1.637,1.622,1.608,1.597,
|
||||
1.585,1.575,1.566,1.557,1.548,1.541
|
||||
);
|
||||
var
|
||||
UCL, LCL: Double;
|
||||
grpSize, oldGrpSize: Integer;
|
||||
ColNoSelected: IntDyneVec = nil;
|
||||
groups: StrDyneVec = nil;
|
||||
means: DblDyneVec = nil;
|
||||
stddev: DblDyneVec = nil;
|
||||
count: IntDyneVec = nil;
|
||||
numGrps: Integer = 0;
|
||||
grp: String;
|
||||
grpIndex: Integer;
|
||||
X, Xsq: Double;
|
||||
seMean, grandMean, grandSigma, grandSD: Double;
|
||||
B, C4, gamma, D3Value, D4Value: Double;
|
||||
xmin, xmax: Double;
|
||||
sizeError: Boolean;
|
||||
i, j: Integer;
|
||||
lReport: TStrings;
|
||||
begin
|
||||
SetLength(ColNoSelected, 2);
|
||||
ColNoSelected[0] := GrpVar;
|
||||
ColNoSelected[1] := MeasVar;
|
||||
|
||||
grpsize := 0;
|
||||
oldgrpsize := 0;
|
||||
groups := GetGroups;
|
||||
numGrps := Length(groups);
|
||||
|
||||
SetLength(means, numGrps);
|
||||
SetLength(count, numGrps);
|
||||
SetLength(stddev, numGrps);
|
||||
seMean := 0.0;
|
||||
grandMean := 0.0;
|
||||
grandSigma := 0.0;
|
||||
sizeError := false;
|
||||
|
||||
// calculate group ranges, grand mean, group sd's, semeans
|
||||
for j := 0 to numGrps-1 do // groups
|
||||
begin
|
||||
xmin := Infinity;
|
||||
xmax := -Infinity;
|
||||
for i := 1 to NoCases do
|
||||
begin
|
||||
if not GoodRecord(i, Length(ColNoSelected), ColNoSelected) then continue;
|
||||
grp := Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i]);
|
||||
grpIndex := IndexOfString(groups, grp);
|
||||
if grpIndex = j then
|
||||
begin
|
||||
X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[MeasVar, i]));
|
||||
Xsq := X*X;
|
||||
if X > xmax then xmax := X;
|
||||
if X < xmin then xmin := X;
|
||||
inc(count[grpIndex]);
|
||||
means[grpIndex] := means[grpIndex] + X;
|
||||
stddev[grpIndex] := stddev[grpIndex] + Xsq;
|
||||
seMean := seMean + Xsq;
|
||||
grandMean := grandMean + X;
|
||||
end;
|
||||
end; // next case
|
||||
stddev[j] := stddev[j] - sqr(means[j]) / count[j];
|
||||
stddev[j] := stddev[j] / (count[j] - 1);
|
||||
stddev[j] := sqrt(stddev[j]);
|
||||
means[j] := means[j] / count[j];
|
||||
grandSigma := grandSigma + stddev[j];
|
||||
grpSize := count[j];
|
||||
if j = 0 then oldGrpSize := grpSize;
|
||||
if oldGrpSize <> grpSize then
|
||||
sizeError := true;
|
||||
end;
|
||||
|
||||
if (grpSize < 2) or (grpSize > 25) or sizeError then
|
||||
begin
|
||||
ErrorMsg('Group size error.');
|
||||
exit;
|
||||
end;
|
||||
|
||||
seMean := seMean - sqr(grandMean)/NoCases;
|
||||
seMean := seMean / (NoCases - 1);
|
||||
seMean := sqrt(seMean);
|
||||
grandSD := seMean;
|
||||
seMean := seMean / sqrt(NoCases);
|
||||
grandMean := grandMean / NoCases;
|
||||
grandSigma := grandSigma / numGrps;
|
||||
D3Value := D3[grpSize-1];
|
||||
D4Value := D4[grpSize-1];
|
||||
C4 := sqrt(2.0 / (grpSize - 1));
|
||||
gamma := exp(GammaLn(grpSize / 2.0));
|
||||
C4 := C4 * gamma;
|
||||
gamma := exp(GammaLn((grpSize-1) / 2.0));
|
||||
C4 := C4 / gamma;
|
||||
B := grandSigma * sqrt(1.0 - (C4 * C4)) / C4;
|
||||
UCL := grandSigma + 3.0 * B;
|
||||
LCL := grandSigma - 3.0 * B;
|
||||
if (LCL < 0.0) then LCL := 0.0;
|
||||
|
||||
// print results
|
||||
lReport := TStringList.Create;
|
||||
try
|
||||
lReport.Add('Sigma Chart Results');
|
||||
lReport.Add('');
|
||||
lReport.Add(' Group Size Mean Std.Dev.');
|
||||
lReport.Add('------- ---- -------- --------');
|
||||
for i := 0 to numGrps - 1 do
|
||||
lReport.Add('%7d %4d %8.2f %8.2f', [i+1, count[i], means[i], stddev[i]]);
|
||||
lReport.Add('');
|
||||
lReport.Add('Grand Mean: %8.3f', [grandMean]);
|
||||
lReport.Add('Standard Deviation: %8.3f', [grandSD]);
|
||||
lReport.Add('Standard Error of Mean: %8.3f', [seMean]);
|
||||
lReport.Add('Mean Sigma: %8.3f', [grandSigma]);
|
||||
lReport.Add('Lower Control Limit: %8.3f', [LCL]);
|
||||
lReport.Add('Upper Control Limit: %8.3f', [UCL]);
|
||||
|
||||
ReportMemo.Lines.Assign(lReport);
|
||||
finally
|
||||
lReport.Free;
|
||||
end;
|
||||
|
||||
// show graph
|
||||
PlotMeans(
|
||||
Format('Sigma Chart for "%s"', [GetFileName]),
|
||||
GroupEdit.Text, Format('StdDev(%s)', [MeasEdit.Text]),
|
||||
'Group Sigma', 'Mean',
|
||||
groups, stdDev, nil,
|
||||
UCL, LCL, grandSigma,
|
||||
NaN, NaN, NaN
|
||||
);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -1,196 +0,0 @@
|
||||
object SigmaChartFrm: TSigmaChartFrm
|
||||
Left = 533
|
||||
Height = 298
|
||||
Top = 243
|
||||
Width = 397
|
||||
HelpType = htKeyword
|
||||
HelpKeyword = 'html/SControlChart.htm'
|
||||
AutoSize = True
|
||||
Caption = 'Sigma Charting'
|
||||
ClientHeight = 298
|
||||
ClientWidth = 397
|
||||
OnActivate = FormActivate
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '2.1.0.0'
|
||||
object Label1: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 8
|
||||
Height = 15
|
||||
Top = 8
|
||||
Width = 97
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Selection Variables'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label2: TLabel
|
||||
AnchorSideLeft.Control = GroupEdit
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 234
|
||||
Height = 15
|
||||
Top = 8
|
||||
Width = 77
|
||||
BorderSpacing.Top = 8
|
||||
Caption = 'Group Variable'
|
||||
ParentColor = False
|
||||
end
|
||||
object Label3: TLabel
|
||||
AnchorSideLeft.Control = MeasEdit
|
||||
Left = 234
|
||||
Height = 15
|
||||
Top = 80
|
||||
Width = 117
|
||||
Caption = 'Measurement Variable'
|
||||
ParentColor = False
|
||||
end
|
||||
object VarList: TListBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Label1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = GroupEdit
|
||||
AnchorSideBottom.Control = Bevel2
|
||||
Left = 8
|
||||
Height = 226
|
||||
Top = 23
|
||||
Width = 218
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Right = 8
|
||||
Constraints.MinHeight = 220
|
||||
ItemHeight = 0
|
||||
OnClick = VarListClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object GroupEdit: TEdit
|
||||
AnchorSideLeft.Control = Bevel1
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Label2
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 234
|
||||
Height = 23
|
||||
Top = 25
|
||||
Width = 155
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 2
|
||||
BorderSpacing.Right = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 1
|
||||
Text = 'GroupEdit'
|
||||
end
|
||||
object MeasEdit: TEdit
|
||||
AnchorSideLeft.Control = Bevel1
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 234
|
||||
Height = 23
|
||||
Top = 96
|
||||
Width = 155
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Right = 8
|
||||
ReadOnly = True
|
||||
TabOrder = 2
|
||||
Text = 'MeasEdit'
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 8
|
||||
Height = 25
|
||||
Top = 265
|
||||
Width = 381
|
||||
Align = alBottom
|
||||
AutoSize = True
|
||||
BorderSpacing.Around = 8
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 25
|
||||
ClientWidth = 381
|
||||
TabOrder = 3
|
||||
object ResetBtn: TButton
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
AnchorSideRight.Control = ComputeBtn
|
||||
Left = 180
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 54
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Right = 8
|
||||
Caption = 'Reset'
|
||||
OnClick = ResetBtnClick
|
||||
TabOrder = 1
|
||||
end
|
||||
object ComputeBtn: TButton
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
AnchorSideRight.Control = CloseBtn
|
||||
Left = 242
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 76
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Right = 8
|
||||
Caption = 'Compute'
|
||||
OnClick = ComputeBtnClick
|
||||
TabOrder = 2
|
||||
end
|
||||
object HelpBtn: TButton
|
||||
Tag = 141
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = ResetBtn
|
||||
AnchorSideRight.Control = ResetBtn
|
||||
Left = 121
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 51
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
BorderSpacing.Right = 8
|
||||
Caption = 'Help'
|
||||
OnClick = HelpBtnClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object CloseBtn: TButton
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
AnchorSideRight.Control = Panel1
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 326
|
||||
Height = 25
|
||||
Top = 0
|
||||
Width = 55
|
||||
Anchors = [akTop, akRight]
|
||||
AutoSize = True
|
||||
Caption = 'Close'
|
||||
ModalResult = 11
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
||||
object Bevel2: TBevel
|
||||
AnchorSideTop.Control = Panel1
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = Panel1
|
||||
Left = 0
|
||||
Height = 8
|
||||
Top = 249
|
||||
Width = 397
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
Shape = bsBottomLine
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 162
|
||||
Height = 16
|
||||
Top = 0
|
||||
Width = 72
|
||||
Shape = bsSpacer
|
||||
end
|
||||
end
|
@ -1,424 +0,0 @@
|
||||
unit SigmaChartUnit;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
|
||||
StdCtrls, Buttons, ExtCtrls,
|
||||
MainUnit, Globals, OutputUnit, FunctionsLib, BlankFrmUnit, ContextHelpUnit;
|
||||
|
||||
type
|
||||
|
||||
{ TSigmaChartFrm }
|
||||
|
||||
TSigmaChartFrm = class(TForm)
|
||||
Bevel1: TBevel;
|
||||
Bevel2: TBevel;
|
||||
ComputeBtn: TButton;
|
||||
HelpBtn: TButton;
|
||||
Panel1: TPanel;
|
||||
ResetBtn: TButton;
|
||||
MeasEdit: TEdit;
|
||||
GroupEdit: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
CloseBtn: TButton;
|
||||
VarList: TListBox;
|
||||
procedure ComputeBtnClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure HelpBtnClick(Sender: TObject);
|
||||
procedure ResetBtnClick(Sender: TObject);
|
||||
procedure VarListClick(Sender: TObject);
|
||||
private
|
||||
{ private declarations }
|
||||
FAutoSized: boolean;
|
||||
procedure PlotMeans(var means: DblDyneVec;
|
||||
NoGrps: integer;
|
||||
UCL, LCL, GrandMean: double;
|
||||
TargetSpec, LowerSpec, UpperSpec: double);
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
SigmaChartFrm: TSigmaChartFrm;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
Math,
|
||||
MathUnit;
|
||||
|
||||
{ TSigmaChartFrm }
|
||||
|
||||
procedure TSigmaChartFrm.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]);
|
||||
end;
|
||||
|
||||
procedure TSigmaChartFrm.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 TSigmaChartFrm.FormActivate(Sender: TObject);
|
||||
var
|
||||
w: Integer;
|
||||
begin
|
||||
if FAutoSized then
|
||||
exit;
|
||||
|
||||
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;
|
||||
|
||||
Constraints.MinWidth := Width;
|
||||
Constraints.MinHeight := Height;
|
||||
|
||||
FAutoSized := true;
|
||||
end;
|
||||
|
||||
procedure TSigmaChartFrm.FormCreate(Sender: TObject);
|
||||
begin
|
||||
Assert(OS3MainFrm <> nil);
|
||||
if BlankFrm = nil then
|
||||
Application.CreateForm(TBlankFrm, BlankFrm);
|
||||
end;
|
||||
|
||||
procedure TSigmaChartFrm.FormShow(Sender: TObject);
|
||||
begin
|
||||
ResetBtnClick(self);
|
||||
end;
|
||||
|
||||
procedure TSigmaChartFrm.HelpBtnClick(Sender: TObject);
|
||||
begin
|
||||
if ContextHelpForm = nil then
|
||||
Application.CreateForm(TContextHelpForm, ContextHelpForm);
|
||||
ContextHelpForm.HelpMessage((Sender as TButton).tag);
|
||||
end;
|
||||
|
||||
procedure TSigmaChartFrm.ComputeBtnClick(Sender: TObject);
|
||||
const
|
||||
D3: array[1..24] of double = (
|
||||
0,0,0,0,0,0.076,0.136,0.184,0.223,0.256,0.283,0.307,0.328,
|
||||
0.347,0.363,0.378,0.391,0.403,0.415,0.425,0.434,0.443,
|
||||
0.451,0.459
|
||||
);
|
||||
D4 : array[1..24] of double = (
|
||||
3.267,2.574,2.282,2.114,2.004,1.924,1.864,1.816,1.777,
|
||||
1.744,1.717,1.693,1.672,1.653,1.637,1.622,1.608,1.597,
|
||||
1.585,1.575,1.566,1.557,1.548,1.541
|
||||
);
|
||||
var
|
||||
i, j, GrpVar, MeasVar, mingrp, maxgrp, G, range, grpsize: integer;
|
||||
oldgrpsize: integer;
|
||||
X, UCL, LCL, UpperSpec, LowerSpec, TargetSpec: double;
|
||||
xmin, xmax, GrandMean, GrandSD, semean: double;
|
||||
GrandSigma, C4, gamma, B: double;
|
||||
D3Value, D4Value: Double;
|
||||
means, stddev: DblDyneVec;
|
||||
count: IntDyneVec;
|
||||
cellstring: string;
|
||||
sizeerror: boolean;
|
||||
lReport: TStrings;
|
||||
|
||||
procedure CleanUp;
|
||||
begin
|
||||
stddev := nil;
|
||||
count := nil;
|
||||
means := nil;
|
||||
end;
|
||||
|
||||
begin
|
||||
if (GroupEdit.Text = '') then
|
||||
begin
|
||||
MessageDlg('Group variable is not specified.', mtError, [mbOk], 0);
|
||||
exit;
|
||||
end;
|
||||
|
||||
if (MeasEdit.Text = '') then
|
||||
begin
|
||||
MessageDlg('Measurement variable is not specified.', mtError, [mbOK], 0);
|
||||
exit;
|
||||
end;
|
||||
|
||||
GrpVar := 1;
|
||||
MeasVar := 2;
|
||||
UpperSpec := 0.0;
|
||||
LowerSpec := 0.0;
|
||||
TargetSpec := 0.0;
|
||||
grpsize := 0;
|
||||
oldgrpsize := 0;
|
||||
|
||||
for i := 1 to NoVariables do
|
||||
begin
|
||||
cellstring := OS3MainFrm.DataGrid.Cells[i,0];
|
||||
if cellstring = GroupEdit.Text then GrpVar := i;
|
||||
if cellstring = MeasEdit.Text then MeasVar := i;
|
||||
end;
|
||||
|
||||
mingrp := 10000;
|
||||
maxgrp := -10000;
|
||||
for i := 1 to NoCases do
|
||||
begin
|
||||
G := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i])));
|
||||
if G < mingrp then mingrp := G;
|
||||
if G > maxgrp then maxgrp := G;
|
||||
end;
|
||||
range := maxgrp - mingrp + 1;
|
||||
|
||||
SetLength(means, range);
|
||||
SetLength(count, range);
|
||||
SetLength(stddev, range);
|
||||
|
||||
for i := 0 to range-1 do
|
||||
begin
|
||||
count[i] := 0;
|
||||
means[i] := 0.0;
|
||||
stddev[i] := 0.0;
|
||||
end;
|
||||
semean := 0.0;
|
||||
GrandMean := 0.0;
|
||||
GrandSigma := 0.0;
|
||||
sizeerror := false;
|
||||
|
||||
// calculate group ranges, grand mean, group sd's, semeans
|
||||
for j := 1 to range do // groups
|
||||
begin
|
||||
xmin := 10000.0;
|
||||
xmax := -10000.0;
|
||||
for i := 1 to NoCases do
|
||||
begin
|
||||
G := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i])));
|
||||
G := G - mingrp + 1;
|
||||
if G = j then
|
||||
begin
|
||||
X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[MeasVar,i]));
|
||||
if X > xmax then xmax := X;
|
||||
if X < xmin then xmin := X;
|
||||
means[G-1] := means[G-1] + X;
|
||||
count[G-1] := count[G-1] + 1;
|
||||
stddev[G-1] := stddev[G-1] + (X * X);
|
||||
semean := semean + (X * X);
|
||||
GrandMean := GrandMean + X;
|
||||
end;
|
||||
end; // next case
|
||||
stddev[j-1] := stddev[j-1] - (means[j-1] * means[j-1] / count[j-1]);
|
||||
stddev[j-1] := stddev[j-1] / (count[j-1] - 1);
|
||||
stddev[j-1] := sqrt(stddev[j-1]);
|
||||
means[j-1] := means[j-1] / count[j-1];
|
||||
GrandSigma := GrandSigma + stddev[j-1];
|
||||
grpsize := count[j-1];
|
||||
if j = 1 then oldgrpsize := grpsize;
|
||||
if oldgrpsize <> grpsize then sizeerror := true;
|
||||
end;
|
||||
|
||||
if (grpsize < 2) or (grpsize > 25) or sizeError then
|
||||
begin
|
||||
MessageDlg('Group sizes error.', mtError, [mbOK], 0);
|
||||
CleanUp;
|
||||
exit;
|
||||
end;
|
||||
|
||||
semean := semean - sqr(GrandMean)/NoCases;
|
||||
semean := semean / (NoCases - 1);
|
||||
semean := sqrt(semean);
|
||||
GrandSD := semean;
|
||||
semean := semean / sqrt(NoCases);
|
||||
GrandMean := GrandMean / NoCases;
|
||||
GrandSigma := GrandSigma / range;
|
||||
D3Value := D3[grpsize-1];
|
||||
D4Value := D4[grpsize-1];
|
||||
C4 := sqrt(2.0 / (grpsize - 1));
|
||||
gamma := exp(GammaLn(grpsize / 2.0));
|
||||
C4 := C4 * gamma;
|
||||
gamma := exp(GammaLn((grpsize-1) / 2.0));
|
||||
C4 := C4 / gamma;
|
||||
B := GrandSigma * sqrt(1.0 - (C4 * C4)) / C4;
|
||||
UCL := GrandSigma + 3.0 * B;
|
||||
LCL := GrandSigma - 3.0 * B;
|
||||
if (LCL < 0.0) then LCL := 0.0;
|
||||
|
||||
// printed results
|
||||
lReport := TStringList.Create;
|
||||
try
|
||||
lReport.Add('Sigma Chart Results');
|
||||
lReport.Add('');
|
||||
lReport.Add('Group Size Mean Std.Dev.');
|
||||
lReport.Add('_____ ____ _________ ________');
|
||||
for i := 0 to range-1 do
|
||||
lReport.Add(' %3d %3d %8.2f %8.2f', [i+1, count[i], means[i], stddev[i]]);
|
||||
lReport.Add('');
|
||||
lReport.Add('Grand Mean: %8.3f', [GrandMean]);
|
||||
lReport.Add('Standard Deviation: %8.3f', [GrandSD]);
|
||||
lReport.Add('Standard Error of Mean: %8.3f', [semean]);
|
||||
lReport.Add('Mean Sigma: %8.3f', [GrandSigma]);
|
||||
lReport.Add('Lower Control Limit: %8.3f', [LCL]);
|
||||
lReport.Add('Upper Control Limit: %8.3f', [UCL]);
|
||||
|
||||
DisplayReport(lReport);
|
||||
finally
|
||||
lReport.Free;
|
||||
end;
|
||||
|
||||
// show graph
|
||||
PlotMeans(stddev, range, UCL, LCL, GrandSigma, TargetSpec, LowerSpec, UpperSpec);
|
||||
|
||||
// clean up
|
||||
CleanUp;
|
||||
end;
|
||||
|
||||
procedure TSigmaChartFrm.PlotMeans(var means: DblDyneVec; NoGrps: integer;
|
||||
UCL, LCL, GrandMean: double; TargetSpec, LowerSpec, UpperSpec: double);
|
||||
var
|
||||
i, xpos, ypos, hleft, hright, vtop, vbottom, imagewide : integer;
|
||||
vhi, hwide, offset, strhi : integer;
|
||||
imagehi, maxval, minval, valincr, Yvalue : double;
|
||||
Title : string;
|
||||
begin
|
||||
maxval := -10000.0;
|
||||
minval := 10000.0;
|
||||
for i := 0 to NoGrps-1 do
|
||||
begin
|
||||
if means[i] > maxval then maxval := means[i];
|
||||
if means[i] < minval then minval := means[i];
|
||||
end;
|
||||
if UCL > maxval then maxval := UCL;
|
||||
if LCL < minval then minval := LCL;
|
||||
BlankFrm.Image1.Canvas.Clear;
|
||||
BlankFrm.Show;
|
||||
Title := 'SIGMA CHART FOR : ' + OS3MainFrm.FileNameEdit.Text;
|
||||
BlankFrm.Caption := Title;
|
||||
imagewide := BlankFrm.Width;
|
||||
imagehi := BlankFrm.Height;
|
||||
vtop := 20;
|
||||
vbottom := round(imagehi) - 80;
|
||||
vhi := vbottom - vtop;
|
||||
hleft := 100;
|
||||
hright := imagewide - 80;
|
||||
hwide := hright - hleft;
|
||||
|
||||
BlankFrm.Image1.Canvas.Brush.Color := clLtGray;
|
||||
BlankFrm.Image1.Canvas.FillRect(0, 0, BlankFrm.Image1.Width, BlankFrm.Image1.Height);
|
||||
|
||||
// Draw chart border
|
||||
BlankFrm.Image1.Canvas.Pen.Color := clBlack;
|
||||
BlankFrm.Image1.Canvas.Brush.Color := clWhite;
|
||||
BlankFrm.Image1.Canvas.Rectangle(hleft,vtop-10,hleft+hwide,vtop+vhi+10);
|
||||
|
||||
// draw Grand Mean
|
||||
ypos := round(vhi * ( (maxval - GrandMean) / (maxval - minval)));
|
||||
ypos := ypos + vtop;
|
||||
xpos := hleft;
|
||||
BlankFrm.Image1.Canvas.MoveTo(xpos,ypos);
|
||||
xpos := hright;
|
||||
BlankFrm.Image1.Canvas.Pen.Color := clRed;
|
||||
BlankFrm.Image1.Canvas.LineTo(xpos,ypos);
|
||||
Title := 'MEAN';
|
||||
strhi := BlankFrm.Image1.Canvas.TextHeight(Title);
|
||||
ypos := ypos - strhi div 2;
|
||||
BlankFrm.Image1.Canvas.Brush.Style := bsClear;
|
||||
BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title);
|
||||
|
||||
// draw horizontal axis
|
||||
BlankFrm.Image1.Canvas.MoveTo(hleft,vbottom + 20);
|
||||
BlankFrm.Image1.Canvas.LineTo(hright,vbottom + 20);
|
||||
for i := 1 to NoGrps do
|
||||
begin
|
||||
ypos := vbottom + 10;
|
||||
xpos := round((hwide / NoGrps)* i + hleft);
|
||||
BlankFrm.Image1.Canvas.MoveTo(xpos,ypos);
|
||||
ypos := ypos + 10;
|
||||
BlankFrm.Image1.Canvas.LineTo(xpos,ypos);
|
||||
Title := format('%d',[i]);
|
||||
offset := BlankFrm.Image1.Canvas.TextWidth(Title) div 2;
|
||||
strhi := BlankFrm.Image1.Canvas.TextHeight(Title);
|
||||
xpos := xpos - offset;
|
||||
ypos := ypos + strhi;
|
||||
BlankFrm.Image1.Canvas.Pen.Color := clBlack;
|
||||
BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title);
|
||||
xpos := 10;
|
||||
BlankFrm.Image1.Canvas.TextOut(xpos,ypos,'GROUPS:');
|
||||
end;
|
||||
|
||||
// Draw vertical axis
|
||||
valincr := (maxval - minval) / 10.0;
|
||||
for i := 1 to 11 do
|
||||
begin
|
||||
Title := format('%8.2f',[maxval - ((i-1)*valincr)]);
|
||||
strhi := BlankFrm.Image1.Canvas.TextHeight(Title);
|
||||
xpos := 10;
|
||||
Yvalue := maxval - (valincr * (i-1));
|
||||
ypos := round(vhi * ( (maxval - Yvalue) / (maxval - minval)));
|
||||
ypos := ypos + vtop - strhi div 2;
|
||||
BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title);
|
||||
end;
|
||||
|
||||
// draw lines for means of the groups
|
||||
ypos := round(vhi * ( (maxval - means[0]) / (maxval - minval)));
|
||||
ypos := ypos + vtop;
|
||||
xpos := round((hwide / NoGrps) + hleft);
|
||||
BlankFrm.Image1.Canvas.MoveTo(xpos,ypos);
|
||||
BlankFrm.Image1.Canvas.Pen.Color := clBlack;
|
||||
for i := 2 to NoGrps do
|
||||
begin
|
||||
ypos := round(vhi * ( (maxval - means[i-1]) / (maxval - minval)));
|
||||
ypos := ypos + vtop;
|
||||
xpos := round((hwide / NoGrps)* i + hleft);
|
||||
BlankFrm.Image1.Canvas.LineTo(xpos,ypos);
|
||||
end;
|
||||
|
||||
// Draw upper and lower confidence intervals
|
||||
ypos := round(vhi * ( (maxval - UCL) / (maxval - minval)));
|
||||
ypos := ypos + vtop;
|
||||
xpos := hleft;
|
||||
BlankFrm.Image1.Canvas.MoveTo(xpos,ypos);
|
||||
xpos := hright;
|
||||
BlankFrm.Image1.Canvas.Pen.Color := clRed;
|
||||
BlankFrm.Image1.Canvas.LineTo(xpos,ypos);
|
||||
Title := 'UCL';
|
||||
strhi := BlankFrm.Image1.Canvas.TextHeight(Title);
|
||||
ypos := ypos - strhi div 2;
|
||||
BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title);
|
||||
|
||||
ypos := round(vhi * ( (maxval - LCL) / (maxval - minval)));
|
||||
ypos := ypos + vtop;
|
||||
xpos := hleft;
|
||||
BlankFrm.Image1.Canvas.MoveTo(xpos,ypos);
|
||||
xpos := hright;
|
||||
BlankFrm.Image1.Canvas.Pen.Color := clRed;
|
||||
BlankFrm.Image1.Canvas.LineTo(xpos,ypos);
|
||||
Title := 'LCL';
|
||||
strhi := BlankFrm.Image1.Canvas.TextHeight(Title);
|
||||
ypos := ypos - strhi div 2;
|
||||
BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title);
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I sigmachartunit.lrs}
|
||||
|
||||
end.
|
||||
|
@ -442,7 +442,7 @@ object OS3MainFrm: TOS3MainFrm
|
||||
OnClick = mnuEditPasteRowClick
|
||||
end
|
||||
end
|
||||
object MenuItem5: TMenuItem
|
||||
object mnuAnalysis: TMenuItem
|
||||
Caption = 'Analyses'
|
||||
object MenuItem32: TMenuItem
|
||||
Caption = 'Descriptive'
|
||||
@ -861,35 +861,35 @@ object OS3MainFrm: TOS3MainFrm
|
||||
OnClick = lifetableClick
|
||||
end
|
||||
end
|
||||
object MenuItem41: TMenuItem
|
||||
object mnuAnalysisSPC: TMenuItem
|
||||
Caption = 'Statistical Process Control'
|
||||
object MenuItem116: TMenuItem
|
||||
object mnuAnalysisSPC_XBar: TMenuItem
|
||||
Caption = 'XBAR Chart'
|
||||
OnClick = MenuItem116Click
|
||||
OnClick = mnuAnalysisSPC_XBarClick
|
||||
end
|
||||
object MenuItem117: TMenuItem
|
||||
object mnuAnalysisSPC_Range: TMenuItem
|
||||
Caption = 'Range Chart'
|
||||
OnClick = MenuItem117Click
|
||||
OnClick = mnuAnalysisSPC_RangeClick
|
||||
end
|
||||
object MenuItem118: TMenuItem
|
||||
object mnuAnalysisSPC_SChart: TMenuItem
|
||||
Caption = 'S Control Chart'
|
||||
OnClick = MenuItem118Click
|
||||
OnClick = mnuAnalysisSPC_SChartClick
|
||||
end
|
||||
object MenuItem6: TMenuItem
|
||||
object mnuAnalysisSPC_CUMSUM: TMenuItem
|
||||
Caption = 'CUMSUM Chart'
|
||||
OnClick = MenuItem6Click
|
||||
OnClick = mnuAnalysisSPC_CUMSUMClick
|
||||
end
|
||||
object MenuItem119: TMenuItem
|
||||
object mnuAnalysisSPC_CChart: TMenuItem
|
||||
Caption = 'Defect (nonconformity) c Chart'
|
||||
OnClick = MenuItem119Click
|
||||
OnClick = mnuAnalysisSPC_CChartClick
|
||||
end
|
||||
object pcontrochart: TMenuItem
|
||||
object mnuAnalysisSPC_PChart: TMenuItem
|
||||
Caption = 'p Control Chart'
|
||||
OnClick = pcontrochartClick
|
||||
OnClick = mnuAnalysisSPC_PChartClick
|
||||
end
|
||||
object MenuItem120: TMenuItem
|
||||
object mnuAnalysisSPC_UChart: TMenuItem
|
||||
Caption = 'Defects per Unit u Chart'
|
||||
OnClick = MenuItem120Click
|
||||
OnClick = mnuAnalysisSPC_UChartClick
|
||||
end
|
||||
end
|
||||
object MenuItem9: TMenuItem
|
||||
@ -1064,6 +1064,10 @@ object OS3MainFrm: TOS3MainFrm
|
||||
OnClick = mnuHelpUsingGridClick
|
||||
end
|
||||
end
|
||||
object MenuItem2: TMenuItem
|
||||
Caption = 'MenuItem2'
|
||||
OnClick = MenuItem2Click
|
||||
end
|
||||
end
|
||||
object OpenDialog1: TOpenDialog
|
||||
Left = 312
|
||||
|
@ -59,14 +59,95 @@ type
|
||||
MenuItem113: TMenuItem;
|
||||
MenuItem114: TMenuItem;
|
||||
MenuItem115: TMenuItem;
|
||||
MenuItem116: TMenuItem;
|
||||
MenuItem117: TMenuItem;
|
||||
MenuItem118: TMenuItem;
|
||||
MenuItem119: TMenuItem;
|
||||
MenuItem12: TMenuItem;
|
||||
MenuItem120: TMenuItem;
|
||||
mnuHelpAbout: TMenuItem;
|
||||
|
||||
mnuAnalysis: TMenuItem;
|
||||
mnuAnalysisSPC: TMenuItem;
|
||||
mnuAnalysisSPC_CChart: TMenuItem;
|
||||
mnuAnalysisSPC_CUMSUM: TMenuItem;
|
||||
mnuAnalysisSPC_PChart: TMenuItem;
|
||||
mnuAnalysisSPC_Range: TMenuItem;
|
||||
mnuAnalysisSPC_SChart: TMenuItem;
|
||||
mnuAnalysisSPC_UChart: TMenuItem;
|
||||
mnuAnalysisSPC_XBar: TMenuItem;
|
||||
|
||||
mnuEdit: TMenuItem;
|
||||
mnuEditCopyCells: TMenuItem;
|
||||
mnuEditCopyCol: TMenuItem;
|
||||
mnuEditCopyRow: TMenuItem;
|
||||
mnuEditCutCells: TMenuItem;
|
||||
mnuEditCutCol: TMenuItem;
|
||||
mnuEditCutRow: TMenuItem;
|
||||
mnuEditDIVIDER1: TMenuItem;
|
||||
mnuEditDIVIDER2: TMenuItem;
|
||||
mnuEditNewCol: TMenuItem;
|
||||
mnuEditNewRow: TMenuItem;
|
||||
mnuEditPasteCells: TMenuItem;
|
||||
mnuEditPasteCol: TMenuItem;
|
||||
mnuEditPasteRow: TMenuItem;
|
||||
|
||||
mnuFileClose: TMenuItem;
|
||||
mnuFileExport: TMenuItem;
|
||||
mnuFileExportCSV: TMenuItem;
|
||||
mnuFileExportSSV: TMenuItem;
|
||||
mnuFileExportTab: TMenuItem;
|
||||
mnuFileExit: TMenuItem;
|
||||
mnuFileImport: TMenuItem;
|
||||
mnuFileImportCSV: TMenuItem;
|
||||
mnuFileImportSSV: TMenuItem;
|
||||
mnuFileImportTAB: TMenuItem;
|
||||
mnuFileNew: TMenuItem;
|
||||
mnuFileOpen: TMenuItem;
|
||||
mnuFileSave: TMenuItem;
|
||||
|
||||
mnuHelpAbout: TMenuItem;
|
||||
mnuHelpLicense: TMenuItem;
|
||||
mnuHelpShowTOC: TMenuItem;
|
||||
mnuHelpUsingGrid: TMenuItem;
|
||||
|
||||
mnuIOptions: TMenuItem;
|
||||
|
||||
mnuSimulations: TMenuItem;
|
||||
mnuSimBivarScatterPlot: TMenuItem;
|
||||
mnuSimChiSqProb: TMenuItem;
|
||||
mnuSimDistPlots: TMenuItem;
|
||||
mnuSimFProb: TMenuItem;
|
||||
mnuSimGenerateRandomValues: TMenuItem;
|
||||
mnuSimGenerateSeqValues: TMenuItem;
|
||||
mnuSimHyperGeomProb: TMenuItem;
|
||||
mnuSimInverseZ: TMenuItem;
|
||||
mnuSimMultiVarDists: TMenuItem;
|
||||
mnuSimPowerCurves: TMenuItem;
|
||||
mnuSimProbabilities: TMenuItem;
|
||||
mnuSimProbBetween: TMenuItem;
|
||||
mnuSimProbDIVIDER: TMenuItem;
|
||||
mnuSimProbGreaterZ: TMenuItem;
|
||||
mnuSimProbLessZ: TMenuItem;
|
||||
mnuSimStudentTProb: TMenuItem;
|
||||
mnuSimTypeErrorCurves: TMenuItem;
|
||||
|
||||
mnuTools: TMenuItem;
|
||||
mnuToolsCalculator: TMenuItem;
|
||||
mnuToolsFormatGrid: TMenuItem;
|
||||
mnuToolsJPEGViewer: TMenuItem;
|
||||
mnuToolsLoadSubFile: TMenuItem;
|
||||
mnuToolsOutputForm: TMenuItem;
|
||||
mnuToolsPrintGrid: TMenuItem;
|
||||
mnuToolsSelectCases: TMenuItem;
|
||||
mnuToolsSmooth: TMenuItem;
|
||||
mnuToolsSortCases: TMenuItem;
|
||||
mnuToolsStrToInt: TMenuItem;
|
||||
mnuToolsSwapDecType: TMenuItem;
|
||||
mnuToolsSwapRowsCols: TMenuItem;
|
||||
|
||||
mnuVariables: TMenuItem;
|
||||
mnuVariablesDefine: TMenuItem;
|
||||
mnuVariablesEquationEditor: TMenuItem;
|
||||
mnuVariablesPrintDefs: TMenuItem;
|
||||
mnuVariablesRecode: TMenuItem;
|
||||
mnuVariablesTransform: TMenuItem;
|
||||
|
||||
MenuItem12: TMenuItem;
|
||||
MenuItem2: TMenuItem;
|
||||
MenuItem14: TMenuItem;
|
||||
MenuItem15: TMenuItem;
|
||||
MenuItem17: TMenuItem;
|
||||
@ -79,11 +160,6 @@ type
|
||||
MenuItem25: TMenuItem;
|
||||
MenuItem26: TMenuItem;
|
||||
MenuItem27: TMenuItem;
|
||||
mnuEditCopyCells: TMenuItem;
|
||||
mnuEditPasteCells: TMenuItem;
|
||||
mnuEditCutCells: TMenuItem;
|
||||
mnuHelpUsingGrid: TMenuItem;
|
||||
mnuToolsOutputForm: TMenuItem;
|
||||
MenuItem29: TMenuItem;
|
||||
MenuItem31: TMenuItem;
|
||||
MenuItem33: TMenuItem;
|
||||
@ -91,18 +167,11 @@ type
|
||||
CompareDists: TMenuItem;
|
||||
MatManMnu: TMenuItem;
|
||||
GrdBkMnu: TMenuItem;
|
||||
mnuSimInverseZ: TMenuItem;
|
||||
mnuSimChiSqProb: TMenuItem;
|
||||
mnuSimFProb: TMenuItem;
|
||||
mnuSimHyperGeomProb: TMenuItem;
|
||||
BinA: TMenuItem;
|
||||
BartlettTest: TMenuItem;
|
||||
GrpFreq: TMenuItem;
|
||||
Correspondence: TMenuItem;
|
||||
KSTest: TMenuItem;
|
||||
mnuVariablesEquationEditor: TMenuItem;
|
||||
mnuToolsCalculator: TMenuItem;
|
||||
mnuToolsJPEGViewer: TMenuItem;
|
||||
MedianPolish: TMenuItem;
|
||||
DataSmooth: TMenuItem;
|
||||
ItemBankMenuItem: TMenuItem;
|
||||
@ -111,17 +180,12 @@ type
|
||||
LSMRitem: TMenuItem;
|
||||
MenuItem42: TMenuItem;
|
||||
MenuItem43: TMenuItem;
|
||||
mnuSimProbDIVIDER: TMenuItem;
|
||||
MenuItem45: TMenuItem;
|
||||
MenuItem46: TMenuItem;
|
||||
mnuHelpLicense: TMenuItem;
|
||||
MenuItem47: TMenuItem;
|
||||
mnuEditDIVIDER2: TMenuItem;
|
||||
mnuEditDIVIDER1: TMenuItem;
|
||||
MenuItem50: TMenuItem;
|
||||
MenuItem51: TMenuItem;
|
||||
MenuItem52: TMenuItem;
|
||||
mnuHelpShowTOC: TMenuItem;
|
||||
SimpChiSqr: TMenuItem;
|
||||
SRHItem: TMenuItem;
|
||||
OneCaseAnova: TMenuItem;
|
||||
@ -129,34 +193,16 @@ type
|
||||
Sens: TMenuItem;
|
||||
XvsMultY: TMenuItem;
|
||||
RunsTest: TMenuItem;
|
||||
mnuToolsSmooth: TMenuItem;
|
||||
NestedABC: TMenuItem;
|
||||
mnuSimStudentTProb: TMenuItem;
|
||||
mnuSimProbBetween: TMenuItem;
|
||||
mnuSimProbLessZ: TMenuItem;
|
||||
mnuSimProbGreaterZ: TMenuItem;
|
||||
mnuSimProbabilities: TMenuItem;
|
||||
mnuToolsStrToInt: TMenuItem;
|
||||
mnuToolsSwapDecType: TMenuItem;
|
||||
PicView: TMenuItem;
|
||||
mnuShowOptions: TMenuItem;
|
||||
WghtedKappa: TMenuItem;
|
||||
WLSReg: TMenuItem;
|
||||
TwoSLSReg: TMenuItem;
|
||||
RiditAnalysis: TMenuItem;
|
||||
MenuItem6: TMenuItem;
|
||||
MenuItem9: TMenuItem;
|
||||
pcontrochart: TMenuItem;
|
||||
OpenDialog1: TOpenDialog;
|
||||
SaveDialog1: TSaveDialog;
|
||||
mnuEditNewCol: TMenuItem;
|
||||
mnuEditCopyCol: TMenuItem;
|
||||
mnuEditCutCol: TMenuItem;
|
||||
mnuEditPasteCol: TMenuItem;
|
||||
mnuEditNewRow: TMenuItem;
|
||||
mnuEditCopyRow: TMenuItem;
|
||||
mnuEditCutRow: TMenuItem;
|
||||
mnuEditPasteRow: TMenuItem;
|
||||
MenuItem71: TMenuItem;
|
||||
MenuItem72: TMenuItem;
|
||||
MenuItem73: TMenuItem;
|
||||
@ -196,28 +242,6 @@ type
|
||||
Label1: TLabel;
|
||||
MainMenu1: TMainMenu;
|
||||
MenuItem1: TMenuItem;
|
||||
mnuFileOpen: TMenuItem;
|
||||
mnuFileNew: TMenuItem;
|
||||
mnuFileImport: TMenuItem;
|
||||
mnuFileExport: TMenuItem;
|
||||
mnuFileExit: TMenuItem;
|
||||
mnuFileImportTAB: TMenuItem;
|
||||
mnuFileImportCSV: TMenuItem;
|
||||
mnuFileImportSSV: TMenuItem;
|
||||
mnuVariables: TMenuItem;
|
||||
mnuFileExportTab: TMenuItem;
|
||||
mnuFileExportCSV: TMenuItem;
|
||||
mnuFileExportSSV: TMenuItem;
|
||||
mnuVariablesDefine: TMenuItem;
|
||||
mnuVariablesPrintDefs: TMenuItem;
|
||||
mnuVariablesTransform: TMenuItem;
|
||||
mnuVariablesRecode: TMenuItem;
|
||||
mnuToolsFormatGrid: TMenuItem;
|
||||
mnuToolsSortCases: TMenuItem;
|
||||
mnuToolsPrintGrid: TMenuItem;
|
||||
mnuTools: TMenuItem;
|
||||
mnuToolsSelectCases: TMenuItem;
|
||||
mnuToolsLoadSubFile: TMenuItem;
|
||||
MenuItem32: TMenuItem;
|
||||
OneSampTests: TMenuItem;
|
||||
MenuItem34: TMenuItem;
|
||||
@ -226,9 +250,7 @@ type
|
||||
MenuItem37: TMenuItem;
|
||||
MenuItem38: TMenuItem;
|
||||
MenuItem39: TMenuItem;
|
||||
mnuEdit: TMenuItem;
|
||||
MenuItem40: TMenuItem;
|
||||
MenuItem41: TMenuItem;
|
||||
Distributions: TMenuItem;
|
||||
FreqAnal: TMenuItem;
|
||||
CrossTabs: TMenuItem;
|
||||
@ -237,7 +259,6 @@ type
|
||||
NormalityTests: TMenuItem;
|
||||
ThreeDRotate: TMenuItem;
|
||||
PlotXvsY: TMenuItem;
|
||||
MenuItem5: TMenuItem;
|
||||
BubblePlot: TMenuItem;
|
||||
StemLeaf: TMenuItem;
|
||||
MultXvsY: TMenuItem;
|
||||
@ -248,21 +269,10 @@ type
|
||||
WithinAnova: TMenuItem;
|
||||
AxSAnova: TMenuItem;
|
||||
ABSAnova: TMenuItem;
|
||||
mnuIOptions: TMenuItem;
|
||||
Ancova: TMenuItem;
|
||||
GLM: TMenuItem;
|
||||
LatinSquares: TMenuItem;
|
||||
mnuSimBivarScatterPlot: TMenuItem;
|
||||
mnuSimMultiVarDists: TMenuItem;
|
||||
mnuSimTypeErrorCurves: TMenuItem;
|
||||
mnuSimPowerCurves: TMenuItem;
|
||||
mnuSimDistPlots: TMenuItem;
|
||||
mnuSimGenerateSeqValues: TMenuItem;
|
||||
mnuSimulations: TMenuItem;
|
||||
mnuSimGenerateRandomValues: TMenuItem;
|
||||
MenuItem8: TMenuItem;
|
||||
mnuToolsSwapRowsCols: TMenuItem;
|
||||
mnuFileSave: TMenuItem;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
DataGrid: TStringGrid;
|
||||
@ -272,6 +282,16 @@ type
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure MenuItem2Click(Sender: TObject);
|
||||
|
||||
// Menu 'Analysis" / "Statistical Process Control"
|
||||
procedure mnuAnalysisSPC_CChartClick(Sender: TObject);
|
||||
procedure mnuAnalysisSPC_CUMSUMClick(Sender: TObject);
|
||||
procedure mnuAnalysisSPC_PChartClick(Sender: TObject);
|
||||
procedure mnuAnalysisSPC_RangeClick(Sender: TObject);
|
||||
procedure mnuAnalysisSPC_SChartClick(Sender: TObject);
|
||||
procedure mnuAnalysisSPC_UChartClick(Sender: TObject);
|
||||
procedure mnuAnalysisSPC_XBarClick(Sender: TObject);
|
||||
|
||||
// Menu "Edit"
|
||||
procedure mnuEditCopyCellsClick(Sender: TObject);
|
||||
@ -397,18 +417,12 @@ type
|
||||
procedure MenuItem113Click(Sender: TObject);
|
||||
procedure MenuItem114Click(Sender: TObject);
|
||||
procedure MenuItem115Click(Sender: TObject);
|
||||
procedure MenuItem116Click(Sender: TObject);
|
||||
procedure MenuItem117Click(Sender: TObject);
|
||||
procedure MenuItem118Click(Sender: TObject);
|
||||
procedure MenuItem119Click(Sender: TObject);
|
||||
procedure MenuItem11Click(Sender: TObject);
|
||||
procedure MenuItem120Click(Sender: TObject);
|
||||
procedure MenuItem14Click(Sender: TObject);
|
||||
procedure MenuItem27Click(Sender: TObject);
|
||||
procedure MenuItem29Click(Sender: TObject);
|
||||
procedure MenuItem31Click(Sender: TObject);
|
||||
procedure MenuItem33Click(Sender: TObject);
|
||||
procedure MenuItem6Click(Sender: TObject);
|
||||
procedure MenuItem71Click(Sender: TObject);
|
||||
procedure MenuItem72Click(Sender: TObject);
|
||||
procedure MenuItem73Click(Sender: TObject);
|
||||
@ -443,7 +457,6 @@ type
|
||||
procedure NormalityTestsClick(Sender: TObject);
|
||||
procedure OneCaseAnovaClick(Sender: TObject);
|
||||
procedure OneSampTestsClick(Sender: TObject);
|
||||
procedure pcontrochartClick(Sender: TObject);
|
||||
// procedure PicViewClick(Sender: TObject);
|
||||
procedure PlotXvsYClick(Sender: TObject);
|
||||
procedure PropDiffClick(Sender: TObject);
|
||||
@ -494,8 +507,13 @@ uses
|
||||
CompRelUnit, KR21Unit, SpBrUnit, RelChangeUnit, DIFUnit, PolyDIFUnit,
|
||||
ChiSqrUnit, SpearmanUnit, MannWhitUUnit, ExactUnit, ConcordanceUnit,
|
||||
KWAnovaUnit, WilcoxonUnit, CochranQUnit, SignTestUnit, FriedmanUnit,
|
||||
BinomialUnit, KendallTauUnit, KaplanMeierUnit, XBarUnit, RChartUnit,
|
||||
SigmaChartUnit, CUMSUMUNIT, CCHARTUNIT, PChartUnit, UChartUnit, CorSimUnit,
|
||||
BinomialUnit, KendallTauUnit, KaplanMeierUnit,
|
||||
|
||||
// Statistical process control
|
||||
XBarUnit, RChartUnit, SChartUnit, CUMSUMUNIT, CCHARTUNIT,
|
||||
PChartUnit, UChartUnit, //SigmaChartUnit,
|
||||
|
||||
CorSimUnit,
|
||||
ErrorCurvesUnit, PCurvesUnit, DistribUnit, GenSeqUnit, GenRndValsUnit,
|
||||
MultGenUnit, LoanItUnit, SumYrsDepUnit, SLDUnit, DblDeclineUnit,
|
||||
RIDITUnit, TwoSLSUnit, WLSUnit, SortCasesUnit,
|
||||
@ -587,6 +605,15 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TOS3MainFrm.MenuItem2Click(Sender: TObject);
|
||||
begin
|
||||
{
|
||||
if SChartForm = nil then
|
||||
Application.CreateForm(TSChartForm, SChartForm);
|
||||
SChartForm.ShowModal;
|
||||
}
|
||||
end;
|
||||
|
||||
// Menu "Analysis" > "Financial" > "Double Declining Value"
|
||||
procedure TOS3MainFrm.MenuItem27Click(Sender: TObject);
|
||||
begin
|
||||
@ -620,7 +647,7 @@ begin
|
||||
end;
|
||||
|
||||
// Menu "Analysis" > "Statistical Process Control" > "CUMSUM Chart"
|
||||
procedure TOS3MainFrm.MenuItem6Click(Sender: TObject);
|
||||
procedure TOS3MainFrm.mnuAnalysisSPC_CUMSUMClick(Sender: TObject);
|
||||
begin
|
||||
if CUMSUMFrm = nil then
|
||||
Application.CreateForm(TCUMSUMFrm, CUMSUMFrm);
|
||||
@ -897,7 +924,7 @@ end;
|
||||
|
||||
|
||||
// Menu "Analysis" > "Statistical Process Control" > "p Control Chart"
|
||||
procedure TOS3MainFrm.pcontrochartClick(Sender: TObject);
|
||||
procedure TOS3MainFrm.mnuAnalysisSPC_PChartClick(Sender: TObject);
|
||||
begin
|
||||
if pChartFrm = nil then
|
||||
Application.CreateForm(TpChartFrm, pChartFrm);
|
||||
@ -2107,7 +2134,7 @@ begin
|
||||
end;
|
||||
|
||||
// Menu "Analysis" > "Statistical Process Control" > "XBAR Chart"
|
||||
procedure TOS3MainFrm.MenuItem116Click(Sender: TObject);
|
||||
procedure TOS3MainFrm.mnuAnalysisSPC_XBarClick(Sender: TObject);
|
||||
begin
|
||||
if XBarFrm = nil then
|
||||
Application.CreateForm(TXBarFrm, XBarFrm);
|
||||
@ -2115,7 +2142,7 @@ begin
|
||||
end;
|
||||
|
||||
// Menu "Analysis" > "Statistical Process Control" > "Range Chart"
|
||||
procedure TOS3MainFrm.MenuItem117Click(Sender: TObject);
|
||||
procedure TOS3MainFrm.mnuAnalysisSPC_RangeClick(Sender: TObject);
|
||||
begin
|
||||
if RChartFrm = nil then
|
||||
Application.CreateForm(TRChartFrm, RChartFrm);
|
||||
@ -2123,15 +2150,20 @@ begin
|
||||
end;
|
||||
|
||||
// Menu "Analysis" > "Statistical Process Control" > "S Control Chart"
|
||||
procedure TOS3MainFrm.MenuItem118Click(Sender: TObject);
|
||||
procedure TOS3MainFrm.mnuAnalysisSPC_SChartClick(Sender: TObject);
|
||||
begin
|
||||
if SChartForm = nil then
|
||||
Application.CreateForm(TSChartForm, SChartForm);
|
||||
SChartForm.ShowModal;
|
||||
{
|
||||
if SigmaChartFrm = nil then
|
||||
Application.CreateForm(TSigmaChartFrm, SigmaChartFrm);
|
||||
SigmaChartFrm.ShowModal;
|
||||
}
|
||||
end;
|
||||
|
||||
// Menu "Analysis" > "Statistical Process Control" > "Defect (nonconformity) c Chart"
|
||||
procedure TOS3MainFrm.MenuItem119Click(Sender: TObject);
|
||||
procedure TOS3MainFrm.mnuAnalysisSPC_CChartClick(Sender: TObject);
|
||||
begin
|
||||
if CChartFrm = nil then
|
||||
Application.CreateForm(TCChartFrm, CChartFrm);
|
||||
@ -2147,7 +2179,7 @@ begin
|
||||
end;
|
||||
|
||||
// Menu "Analysis" > "Statistical Process Control" > "Defects per Unit u Chart"
|
||||
procedure TOS3MainFrm.MenuItem120Click(Sender: TObject);
|
||||
procedure TOS3MainFrm.mnuAnalysisSPC_UChartClick(Sender: TObject);
|
||||
begin
|
||||
if UChartFrm = nil then
|
||||
Application.CreateForm(TUChartFrm, UChartFrm);
|
||||
|
Reference in New Issue
Block a user