LazStats: Use TAChart and SPC template form ind UChartUnit.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7657 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-09-08 11:04:59 +00:00
parent 9a86172efe
commit 4bcda27b5f
6 changed files with 472 additions and 800 deletions

View File

@ -49,7 +49,7 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item7> </Item7>
</RequiredPackages> </RequiredPackages>
<Units Count="176"> <Units Count="175">
<Unit0> <Unit0>
<Filename Value="LazStats.lpr"/> <Filename Value="LazStats.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -752,682 +752,675 @@
<UnitName Value="CUMSUMUnit"/> <UnitName Value="CUMSUMUnit"/>
</Unit89> </Unit89>
<Unit90> <Unit90>
<Filename Value="forms\analysis\statistical_process_control\pchartunit1.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="pChartFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
</Unit90>
<Unit91>
<Filename Value="forms\analysis\statistical_process_control\uchartunit.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="UChartFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="UChartUnit"/>
</Unit91>
<Unit92>
<Filename Value="forms\simulations\corsimunit.pas"/> <Filename Value="forms\simulations\corsimunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="CorSimFrm"/> <ComponentName Value="CorSimFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="CorSimUnit"/> <UnitName Value="CorSimUnit"/>
</Unit92> </Unit90>
<Unit93> <Unit91>
<Filename Value="forms\simulations\multgenunit.pas"/> <Filename Value="forms\simulations\multgenunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="MultGenFrm"/> <ComponentName Value="MultGenFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="MultGenUnit"/> <UnitName Value="MultGenUnit"/>
</Unit93> </Unit91>
<Unit94> <Unit92>
<Filename Value="forms\simulations\errorcurvesunit.pas"/> <Filename Value="forms\simulations\errorcurvesunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ErrorCurvesFrm"/> <ComponentName Value="ErrorCurvesFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ErrorCurvesUnit"/> <UnitName Value="ErrorCurvesUnit"/>
</Unit94> </Unit92>
<Unit95> <Unit93>
<Filename Value="forms\simulations\pcurvesunit.pas"/> <Filename Value="forms\simulations\pcurvesunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="PCurvesFrm"/> <ComponentName Value="PCurvesFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="PCurvesUnit"/> <UnitName Value="PCurvesUnit"/>
</Unit95> </Unit93>
<Unit96> <Unit94>
<Filename Value="forms\simulations\distribunit.pas"/> <Filename Value="forms\simulations\distribunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="DistribFrm"/> <ComponentName Value="DistribFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="DistribUnit"/> <UnitName Value="DistribUnit"/>
</Unit96> </Unit94>
<Unit97> <Unit95>
<Filename Value="forms\simulations\gensequnit.pas"/> <Filename Value="forms\simulations\gensequnit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GenSeqFrm"/> <ComponentName Value="GenSeqFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="GenSeqUnit"/> <UnitName Value="GenSeqUnit"/>
</Unit97> </Unit95>
<Unit98> <Unit96>
<Filename Value="forms\simulations\genrndvalsunit.pas"/> <Filename Value="forms\simulations\genrndvalsunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GenRndValsFrm"/> <ComponentName Value="GenRndValsFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="GenRndValsUnit"/> <UnitName Value="GenRndValsUnit"/>
</Unit98> </Unit96>
<Unit99> <Unit97>
<Filename Value="forms\analysis\financial\loanitunit.pas"/> <Filename Value="forms\analysis\financial\loanitunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="LoanItFrm"/> <ComponentName Value="LoanItFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="LoanItUnit"/> <UnitName Value="LoanItUnit"/>
</Unit99> </Unit97>
<Unit100> <Unit98>
<Filename Value="forms\analysis\financial\sumyrsdepunit.pas"/> <Filename Value="forms\analysis\financial\sumyrsdepunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SumYrsDepFrm"/> <ComponentName Value="SumYrsDepFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SumYrsDepUnit"/> <UnitName Value="SumYrsDepUnit"/>
</Unit100> </Unit98>
<Unit101> <Unit99>
<Filename Value="forms\analysis\financial\sldunit.pas"/> <Filename Value="forms\analysis\financial\sldunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SLDepFrm"/> <ComponentName Value="SLDepFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SLDUnit"/> <UnitName Value="SLDUnit"/>
</Unit101> </Unit99>
<Unit102> <Unit100>
<Filename Value="forms\analysis\financial\dbldeclineunit.pas"/> <Filename Value="forms\analysis\financial\dbldeclineunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="DblDeclineFrm"/> <ComponentName Value="DblDeclineFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="DblDeclineUnit"/> <UnitName Value="DblDeclineUnit"/>
</Unit102> </Unit100>
<Unit103> <Unit101>
<Filename Value="forms\analysis\nonparametric\riditunit.pas"/> <Filename Value="forms\analysis\nonparametric\riditunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RIDITFrm"/> <ComponentName Value="RIDITFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RIDITUnit"/> <UnitName Value="RIDITUnit"/>
</Unit103> </Unit101>
<Unit104> <Unit102>
<Filename Value="forms\analysis\multiple_regression\twoslsunit.pas"/> <Filename Value="forms\analysis\multiple_regression\twoslsunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="TwoSLSFrm"/> <ComponentName Value="TwoSLSFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="TwoSLSUnit"/> <UnitName Value="TwoSLSUnit"/>
</Unit104> </Unit102>
<Unit105> <Unit103>
<Filename Value="forms\analysis\multiple_regression\wlsunit.pas"/> <Filename Value="forms\analysis\multiple_regression\wlsunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="WLSFrm"/> <ComponentName Value="WLSFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="WLSUnit"/> <UnitName Value="WLSUnit"/>
</Unit105> </Unit103>
<Unit106> <Unit104>
<Filename Value="forms\analysis\multivariate\avglinkunit.pas"/> <Filename Value="forms\analysis\multivariate\avglinkunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="AvgLinkFrm"/> <ComponentName Value="AvgLinkFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="AvgLinkUnit"/> <UnitName Value="AvgLinkUnit"/>
</Unit106> </Unit104>
<Unit107> <Unit105>
<Filename Value="forms\tools\sortcasesunit.pas"/> <Filename Value="forms\tools\sortcasesunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SortCasesFrm"/> <ComponentName Value="SortCasesFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SortCasesUnit"/> <UnitName Value="SortCasesUnit"/>
</Unit107> </Unit105>
<Unit108> <Unit106>
<Filename Value="forms\tools\selectcasesunit.pas"/> <Filename Value="forms\tools\selectcasesunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SelectFrm"/> <ComponentName Value="SelectFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SelectCasesUnit"/> <UnitName Value="SelectCasesUnit"/>
</Unit108> </Unit106>
<Unit109> <Unit107>
<Filename Value="forms\tools\selectifunit.pas"/> <Filename Value="forms\tools\selectifunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SelectIfFrm"/> <ComponentName Value="SelectIfFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SelectIfUnit"/> <UnitName Value="SelectIfUnit"/>
</Unit109> </Unit107>
<Unit110> <Unit108>
<Filename Value="forms\tools\randomsampunit.pas"/> <Filename Value="forms\tools\randomsampunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RandomSampFrm"/> <ComponentName Value="RandomSampFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RandomSampUnit"/> <UnitName Value="RandomSampUnit"/>
</Unit110> </Unit108>
<Unit111> <Unit109>
<Filename Value="forms\tools\rangeselectunit.pas"/> <Filename Value="forms\tools\rangeselectunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RangeSelectFrm"/> <ComponentName Value="RangeSelectFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RangeSelectUnit"/> <UnitName Value="RangeSelectUnit"/>
</Unit111> </Unit109>
<Unit112> <Unit110>
<Filename Value="forms\help\gridhelpunit.pas"/> <Filename Value="forms\help\gridhelpunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GridHelpFrm"/> <ComponentName Value="GridHelpFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="GridHelpUnit"/> <UnitName Value="GridHelpUnit"/>
</Unit112> </Unit110>
<Unit113> <Unit111>
<Filename Value="forms\variables\recodeunit.pas"/> <Filename Value="forms\variables\recodeunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RecodeFrm"/> <ComponentName Value="RecodeFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RecodeUnit"/> <UnitName Value="RecodeUnit"/>
</Unit113> </Unit111>
<Unit114> <Unit112>
<Filename Value="forms\analysis\nonparametric\kappaunit.pas"/> <Filename Value="forms\analysis\nonparametric\kappaunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="WeightedKappaFrm"/> <ComponentName Value="WeightedKappaFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="KappaUnit"/> <UnitName Value="KappaUnit"/>
</Unit114> </Unit112>
<Unit115> <Unit113>
<Filename Value="forms\analysis\multivariate\kmeansunit.pas"/> <Filename Value="forms\analysis\multivariate\kmeansunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="KMeansFrm"/> <ComponentName Value="KMeansFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="KMeansUnit"/> <UnitName Value="KMeansUnit"/>
</Unit115> </Unit113>
<Unit116> <Unit114>
<Filename Value="forms\analysis\multivariate\singlelinkunit.pas"/> <Filename Value="forms\analysis\multivariate\singlelinkunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SingleLinkFrm"/> <ComponentName Value="SingleLinkFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SingleLinkUnit"/> <UnitName Value="SingleLinkUnit"/>
</Unit116> </Unit114>
<Unit117> <Unit115>
<Filename Value="forms\analysis\nonparametric\genkappaunit.pas"/> <Filename Value="forms\analysis\nonparametric\genkappaunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GenKappaFrm"/> <ComponentName Value="GenKappaFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="GenKappaUnit"/> <UnitName Value="GenKappaUnit"/>
</Unit117> </Unit115>
<Unit118> <Unit116>
<Filename Value="forms\analysis\matrix_manipulation\matmanunit.pas"/> <Filename Value="forms\analysis\matrix_manipulation\matmanunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="MatManFrm"/> <ComponentName Value="MatManFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="MatManUnit"/> <UnitName Value="MatManUnit"/>
</Unit118> </Unit116>
<Unit119> <Unit117>
<Filename Value="forms\analysis\matrix_manipulation\scripteditorunit.pas"/> <Filename Value="forms\analysis\matrix_manipulation\scripteditorunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ScriptEditorFrm"/> <ComponentName Value="ScriptEditorFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ScriptEditorUnit"/> <UnitName Value="ScriptEditorUnit"/>
</Unit119> </Unit117>
<Unit120> <Unit118>
<Filename Value="forms\analysis\matrix_manipulation\rootmethodunit.pas"/> <Filename Value="forms\analysis\matrix_manipulation\rootmethodunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RootMethodFrm"/> <ComponentName Value="RootMethodFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RootMethodUnit"/> <UnitName Value="RootMethodUnit"/>
</Unit120> </Unit118>
<Unit121> <Unit119>
<Filename Value="forms\analysis\matrix_manipulation\scriptoptsunit.pas"/> <Filename Value="forms\analysis\matrix_manipulation\scriptoptsunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ScriptOptsFrm"/> <ComponentName Value="ScriptOptsFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ScriptOptsUnit"/> <UnitName Value="ScriptOptsUnit"/>
</Unit121> </Unit119>
<Unit122> <Unit120>
<Filename Value="forms\analysis\matrix_manipulation\colinsertunit.pas"/> <Filename Value="forms\analysis\matrix_manipulation\colinsertunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ColInsertFrm"/> <ComponentName Value="ColInsertFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ColInsertUnit"/> <UnitName Value="ColInsertUnit"/>
</Unit122> </Unit120>
<Unit123> <Unit121>
<Filename Value="forms\analysis\matrix_manipulation\rowinsertunit.pas"/> <Filename Value="forms\analysis\matrix_manipulation\rowinsertunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RowInsertFrm"/> <ComponentName Value="RowInsertFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RowInsertUnit"/> <UnitName Value="RowInsertUnit"/>
</Unit123> </Unit121>
<Unit124> <Unit122>
<Filename Value="forms\analysis\measurement_programs\gradebookunit.pas"/> <Filename Value="forms\analysis\measurement_programs\gradebookunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GradebookFrm"/> <ComponentName Value="GradebookFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="GradeBookUnit"/> <UnitName Value="GradeBookUnit"/>
</Unit124> </Unit122>
<Unit125> <Unit123>
<Filename Value="forms\analysis\measurement_programs\gradingunit.pas"/> <Filename Value="forms\analysis\measurement_programs\gradingunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GradingFrm"/> <ComponentName Value="GradingFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="GradingUnit"/> <UnitName Value="GradingUnit"/>
</Unit125> </Unit123>
<Unit126> <Unit124>
<Filename Value="forms\simulations\probzunit.pas"/> <Filename Value="forms\simulations\probzunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ProbzForm"/> <ComponentName Value="ProbzForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ProbZUnit"/> <UnitName Value="ProbZUnit"/>
</Unit126> </Unit124>
<Unit127> <Unit125>
<Filename Value="forms\simulations\probsmallerzunit.pas"/> <Filename Value="forms\simulations\probsmallerzunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ProbSmallerzForm"/> <ComponentName Value="ProbSmallerzForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ProbSmallerZUnit"/> <UnitName Value="ProbSmallerZUnit"/>
</Unit127> </Unit125>
<Unit128> <Unit126>
<Filename Value="forms\simulations\twozprobunit.pas"/> <Filename Value="forms\simulations\twozprobunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="TwozProbForm"/> <ComponentName Value="TwozProbForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="TwoZProbUnit"/> <UnitName Value="TwoZProbUnit"/>
</Unit128> </Unit126>
<Unit129> <Unit127>
<Filename Value="forms\simulations\inversezunit.pas"/> <Filename Value="forms\simulations\inversezunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="InversezForm"/> <ComponentName Value="InversezForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="InverseZUnit"/> <UnitName Value="InverseZUnit"/>
</Unit129> </Unit127>
<Unit130> <Unit128>
<Filename Value="forms\simulations\probchisqrunit.pas"/> <Filename Value="forms\simulations\probchisqrunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ChiSqrProbForm"/> <ComponentName Value="ChiSqrProbForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ProbChiSqrUnit"/> <UnitName Value="ProbChiSqrUnit"/>
</Unit130> </Unit128>
<Unit131> <Unit129>
<Filename Value="forms\simulations\tprobunit.pas"/> <Filename Value="forms\simulations\tprobunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="TprobForm"/> <ComponentName Value="TprobForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="tProbUnit"/> <UnitName Value="tProbUnit"/>
</Unit131> </Unit129>
<Unit132> <Unit130>
<Filename Value="forms\simulations\fprobunit.pas"/> <Filename Value="forms\simulations\fprobunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="FForm"/> <ComponentName Value="FForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="FProbUnit"/> <UnitName Value="FProbUnit"/>
</Unit132> </Unit130>
<Unit133> <Unit131>
<Filename Value="forms\simulations\hypergeounit.pas"/> <Filename Value="forms\simulations\hypergeounit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="HyperGeoForm"/> <ComponentName Value="HyperGeoForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="HyperGeoUnit"/> <UnitName Value="HyperGeoUnit"/>
</Unit133> </Unit131>
<Unit134> <Unit132>
<Filename Value="forms\analysis\comparisons\bnestaunit.pas"/> <Filename Value="forms\analysis\comparisons\bnestaunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="BNestedAForm"/> <ComponentName Value="BNestedAForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="BNestAUnit"/> <UnitName Value="BNestAUnit"/>
</Unit134> </Unit132>
<Unit135> <Unit133>
<Filename Value="forms\analysis\comparisons\abcnestedunit.pas"/> <Filename Value="forms\analysis\comparisons\abcnestedunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ABCNestedForm"/> <ComponentName Value="ABCNestedForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ABCNestedUnit"/> <UnitName Value="ABCNestedUnit"/>
</Unit135> </Unit133>
<Unit136> <Unit134>
<Filename Value="forms\analysis\multivariate\bartletttestunit.pas"/> <Filename Value="forms\analysis\multivariate\bartletttestunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="BartlettTestForm"/> <ComponentName Value="BartlettTestForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="BartlettTestUnit"/> <UnitName Value="BartlettTestUnit"/>
</Unit136> </Unit134>
<Unit137> <Unit135>
<Filename Value="forms\tools\datasmoothunit.pas"/> <Filename Value="forms\tools\datasmoothunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SmoothDataForm"/> <ComponentName Value="SmoothDataForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="DataSmoothUnit"/> <UnitName Value="DataSmoothUnit"/>
</Unit137> </Unit135>
<Unit138> <Unit136>
<Filename Value="forms\analysis\descriptive\groupfrequnit.pas"/> <Filename Value="forms\analysis\descriptive\groupfrequnit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GroupFreqForm"/> <ComponentName Value="GroupFreqForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="GroupFreqUnit"/> <UnitName Value="GroupFreqUnit"/>
</Unit138> </Unit136>
<Unit139> <Unit137>
<Filename Value="forms\analysis\nonparametric\runstestunit.pas"/> <Filename Value="forms\analysis\nonparametric\runstestunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="runstestform"/> <ComponentName Value="runstestform"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RunsTestUnit"/> <UnitName Value="RunsTestUnit"/>
</Unit139> </Unit137>
<Unit140> <Unit138>
<Filename Value="forms\analysis\descriptive\xvsmultyunit.pas"/> <Filename Value="forms\analysis\descriptive\xvsmultyunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="XvsMultYForm"/> <ComponentName Value="XvsMultYForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="XvsMultYUnit"/> <UnitName Value="XvsMultYUnit"/>
</Unit140> </Unit138>
<Unit141> <Unit139>
<Filename Value="forms\analysis\nonparametric\sensunit.pas"/> <Filename Value="forms\analysis\nonparametric\sensunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SensForm"/> <ComponentName Value="SensForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SensUnit"/> <UnitName Value="SensUnit"/>
</Unit141> </Unit139>
<Unit142> <Unit140>
<Filename Value="forms\analysis\multivariate\correspondenceunit.pas"/> <Filename Value="forms\analysis\multivariate\correspondenceunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="CorrespondenceForm"/> <ComponentName Value="CorrespondenceForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="CorrespondenceUnit"/> <UnitName Value="CorrespondenceUnit"/>
</Unit142> </Unit140>
<Unit143> <Unit141>
<Filename Value="forms\analysis\descriptive\comparedistunit.pas"/> <Filename Value="forms\analysis\descriptive\comparedistunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="CompareDistFrm"/> <ComponentName Value="CompareDistFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="CompareDistUnit"/> <UnitName Value="CompareDistUnit"/>
</Unit143> </Unit141>
<Unit144> <Unit142>
<Filename Value="forms\variables\equationunit.pas"/> <Filename Value="forms\variables\equationunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="EquationForm"/> <ComponentName Value="EquationForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="EquationUnit"/> <UnitName Value="EquationUnit"/>
</Unit144> </Unit142>
<Unit145> <Unit143>
<Filename Value="forms\misc\contexthelpunit.pas"/> <Filename Value="forms\misc\contexthelpunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ContextHelpForm"/> <ComponentName Value="ContextHelpForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ContextHelpUnit"/> <UnitName Value="ContextHelpUnit"/>
</Unit145> </Unit143>
<Unit146> <Unit144>
<Filename Value="forms\tools\calculatorunit.pas"/> <Filename Value="forms\tools\calculatorunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="CalculatorForm"/> <ComponentName Value="CalculatorForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="CalculatorUnit"/> <UnitName Value="CalculatorUnit"/>
</Unit146> </Unit144>
<Unit147> <Unit145>
<Filename Value="forms\tools\jpegunit.pas"/> <Filename Value="forms\tools\jpegunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="JPEGform"/> <ComponentName Value="JPEGform"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="JpegUnit"/> <UnitName Value="JpegUnit"/>
</Unit147> </Unit145>
<Unit148> <Unit146>
<Filename Value="forms\analysis\descriptive\resistancelineunit.pas"/> <Filename Value="forms\analysis\descriptive\resistancelineunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ResistanceLineForm"/> <ComponentName Value="ResistanceLineForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ResistanceLineUnit"/> <UnitName Value="ResistanceLineUnit"/>
</Unit148> </Unit146>
<Unit149> <Unit147>
<Filename Value="forms\analysis\multivariate\medianpolishunit.pas"/> <Filename Value="forms\analysis\multivariate\medianpolishunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="MedianPolishForm"/> <ComponentName Value="MedianPolishForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="MedianPolishUnit"/> <UnitName Value="MedianPolishUnit"/>
</Unit149> </Unit147>
<Unit150> <Unit148>
<Filename Value="forms\analysis\comparisons\onecaseanovaunit.pas"/> <Filename Value="forms\analysis\comparisons\onecaseanovaunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="OneCaseAnovaForm"/> <ComponentName Value="OneCaseAnovaForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="OneCaseANOVAUnit"/> <UnitName Value="OneCaseANOVAUnit"/>
</Unit150> </Unit148>
<Unit151> <Unit149>
<Filename Value="forms\analysis\descriptive\smoothdataunit.pas"/> <Filename Value="forms\analysis\descriptive\smoothdataunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="DataSmoothingForm"/> <ComponentName Value="DataSmoothingForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SmoothDataUnit"/> <UnitName Value="SmoothDataUnit"/>
</Unit151> </Unit149>
<Unit152> <Unit150>
<Filename Value="forms\analysis\nonparametric\srhtestunit.pas"/> <Filename Value="forms\analysis\nonparametric\srhtestunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SRHTest"/> <ComponentName Value="SRHTest"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SRHTestUnit"/> <UnitName Value="SRHTestUnit"/>
</Unit152> </Unit150>
<Unit153> <Unit151>
<Filename Value="forms\help\aboutunit.pas"/> <Filename Value="forms\help\aboutunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="AboutBox"/> <ComponentName Value="AboutBox"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="AboutUnit"/> <UnitName Value="AboutUnit"/>
</Unit153> </Unit151>
<Unit154> <Unit152>
<Filename Value="forms\analysis\measurement_programs\item_banking\itembankingunit.pas"/> <Filename Value="forms\analysis\measurement_programs\item_banking\itembankingunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ItemBankFrm"/> <ComponentName Value="ItemBankFrm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ItemBankingUnit"/> <UnitName Value="ItemBankingUnit"/>
</Unit154> </Unit152>
<Unit155> <Unit153>
<Filename Value="forms\analysis\measurement_programs\item_banking\itemcodesunit.pas"/> <Filename Value="forms\analysis\measurement_programs\item_banking\itemcodesunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="CodesForm"/> <ComponentName Value="CodesForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ItemCodesUnit"/> <UnitName Value="ItemCodesUnit"/>
</Unit155> </Unit153>
<Unit156> <Unit154>
<Filename Value="forms\analysis\measurement_programs\item_banking\tfitemunit.pas"/> <Filename Value="forms\analysis\measurement_programs\item_banking\tfitemunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="TFItemForm"/> <ComponentName Value="TFItemForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="TFItemUnit"/> <UnitName Value="TFItemUnit"/>
</Unit156> </Unit154>
<Unit157> <Unit155>
<Filename Value="forms\analysis\measurement_programs\item_banking\essayitemunit.pas"/> <Filename Value="forms\analysis\measurement_programs\item_banking\essayitemunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="EssayItemForm"/> <ComponentName Value="EssayItemForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="EssayItemUnit"/> <UnitName Value="EssayItemUnit"/>
</Unit157> </Unit155>
<Unit158> <Unit156>
<Filename Value="forms\analysis\measurement_programs\item_banking\mcitemunit.pas"/> <Filename Value="forms\analysis\measurement_programs\item_banking\mcitemunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="MCItemForm"/> <ComponentName Value="MCItemForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="MCItemUnit"/> <UnitName Value="MCItemUnit"/>
</Unit158> </Unit156>
<Unit159> <Unit157>
<Filename Value="forms\analysis\measurement_programs\item_banking\matchitemunit.pas"/> <Filename Value="forms\analysis\measurement_programs\item_banking\matchitemunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="MatchItemForm"/> <ComponentName Value="MatchItemForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="MatchItemUnit"/> <UnitName Value="MatchItemUnit"/>
</Unit159> </Unit157>
<Unit160> <Unit158>
<Filename Value="forms\analysis\measurement_programs\item_banking\testspecsunit.pas"/> <Filename Value="forms\analysis\measurement_programs\item_banking\testspecsunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="TestSpecsForm"/> <ComponentName Value="TestSpecsForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="TestSpecsUnit"/> <UnitName Value="TestSpecsUnit"/>
</Unit160> </Unit158>
<Unit161> <Unit159>
<Filename Value="forms\analysis\nonparametric\simplechisqrunit.pas"/> <Filename Value="forms\analysis\nonparametric\simplechisqrunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SimpleChiSqrForm"/> <ComponentName Value="SimpleChiSqrForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SimpleChiSqrUnit"/> <UnitName Value="SimpleChiSqrUnit"/>
</Unit161> </Unit159>
<Unit162> <Unit160>
<Filename Value="forms\analysis\nonparametric\lifetableunit.pas"/> <Filename Value="forms\analysis\nonparametric\lifetableunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="LifeTableForm"/> <ComponentName Value="LifeTableForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="LifeTableUnit"/> <UnitName Value="LifeTableUnit"/>
</Unit162> </Unit160>
<Unit163> <Unit161>
<Filename Value="forms\analysis\multiple_regression\lsmrunit.pas"/> <Filename Value="forms\analysis\multiple_regression\lsmrunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="LSMregForm"/> <ComponentName Value="LSMregForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="LSMRUnit"/> <UnitName Value="LSMRUnit"/>
</Unit163> </Unit161>
<Unit164> <Unit162>
<Filename Value="forms\maindm.pas"/> <Filename Value="forms\maindm.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="MainDataModule"/> <ComponentName Value="MainDataModule"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="DataModule"/> <ResourceBaseClass Value="DataModule"/>
<UnitName Value="MainDM"/> <UnitName Value="MainDM"/>
</Unit164> </Unit162>
<Unit165> <Unit163>
<Filename Value="units\utils.pas"/> <Filename Value="units\utils.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="Utils"/> <UnitName Value="Utils"/>
</Unit165> </Unit163>
<Unit166> <Unit164>
<Filename Value="LazStats.inc"/> <Filename Value="LazStats.inc"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
</Unit166> </Unit164>
<Unit167> <Unit165>
<Filename Value="forms\misc\chartunit.pas"/> <Filename Value="forms\misc\chartunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ChartForm"/> <ComponentName Value="ChartForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="ChartUnit"/> <UnitName Value="ChartUnit"/>
</Unit167> </Unit165>
<Unit168> <Unit166>
<Filename Value="units\mathunit.pas"/> <Filename Value="units\mathunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="MathUnit"/> <UnitName Value="MathUnit"/>
</Unit168> </Unit166>
<Unit169> <Unit167>
<Filename Value="frames\chartframeunit.pas"/> <Filename Value="frames\chartframeunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="ChartFrame"/> <ComponentName Value="ChartFrame"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Frame"/> <ResourceBaseClass Value="Frame"/>
<UnitName Value="ChartFrameUnit"/> <UnitName Value="ChartFrameUnit"/>
</Unit169> </Unit167>
<Unit170> <Unit168>
<Filename Value="forms\analysis\statistical_process_control\basicspcunit.pas"/> <Filename Value="forms\analysis\statistical_process_control\basicspcunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="BasicSPCForm"/> <ComponentName Value="BasicSPCForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="BasicSPCUnit"/> <UnitName Value="BasicSPCUnit"/>
</Unit170> </Unit168>
<Unit171> <Unit169>
<Filename Value="forms\analysis\statistical_process_control\schartunit.pas"/> <Filename Value="forms\analysis\statistical_process_control\schartunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="SChartForm"/> <ComponentName Value="SChartForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="SChartUnit"/> <UnitName Value="SChartUnit"/>
</Unit171> </Unit169>
<Unit172> <Unit170>
<Filename Value="forms\analysis\statistical_process_control\rchartunit.pas"/> <Filename Value="forms\analysis\statistical_process_control\rchartunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RChartForm"/> <ComponentName Value="RChartForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RChartUnit"/> <UnitName Value="RChartUnit"/>
</Unit172> </Unit170>
<Unit173> <Unit171>
<Filename Value="forms\analysis\statistical_process_control\xbarchartunit.pas"/> <Filename Value="forms\analysis\statistical_process_control\xbarchartunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="XBarChartForm"/> <ComponentName Value="XBarChartForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="XBarChartUnit"/> <UnitName Value="XBarChartUnit"/>
</Unit173> </Unit171>
<Unit174> <Unit172>
<Filename Value="forms\analysis\statistical_process_control\cchartunit.pas"/> <Filename Value="forms\analysis\statistical_process_control\cchartunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="CChartForm"/> <ComponentName Value="CChartForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="CChartUnit"/> <UnitName Value="CChartUnit"/>
</Unit174> </Unit172>
<Unit175> <Unit173>
<Filename Value="forms\analysis\statistical_process_control\pchartunit.pas"/> <Filename Value="forms\analysis\statistical_process_control\pchartunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="PChartForm"/> <ComponentName Value="PChartForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="PChartUnit"/> <UnitName Value="PChartUnit"/>
</Unit175> </Unit173>
<Unit174>
<Filename Value="forms\analysis\statistical_process_control\uchartunit.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="UChartForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="UChartUnit"/>
</Unit174>
</Units> </Units>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -7,10 +7,8 @@ uses
cthreads, cthreads,
{$ENDIF}{$ENDIF} {$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset Interfaces, // this includes the LCL widgetset
Forms, tachartlazaruspkg, tachartprint, lhelpcontrolpkg, Globals, LicenseUnit, Forms, tachartlazaruspkg, tachartprint, lhelpcontrolpkg,
OptionsUnit, MainDM, MainUnit, MathUnit, BasicSPCUnit, Globals, LicenseUnit, OptionsUnit, DictionaryUnit, MainDM, MainUnit;
SChartUnit, rchartunit, XBarChartUnit, cchartunit,
pchartunit; //, utils, chartunit;
{$R LazStats.res} {$R LazStats.res}
@ -30,10 +28,6 @@ begin
end; end;
Application.CreateForm(TMainDataModule, MainDataModule); Application.CreateForm(TMainDataModule, MainDataModule);
Application.CreateForm(TOS3MainFrm, OS3MainFrm); Application.CreateForm(TOS3MainFrm, OS3MainFrm);
Application.CreateForm(TRChartForm, RChartForm);
Application.CreateForm(TXBarChartForm, XBarChartForm);
Application.CreateForm(TCChartForm, CChartForm);
Application.CreateForm(TPChartForm, PChartForm);
Application.Run; Application.Run;
end. end.

View File

@ -113,7 +113,7 @@ begin
// Show graph // Show graph
PlotMeans( PlotMeans(
Format('P Control Chart for "%s"', [GetFileName]), Format('P Control Chart for "%s"', [GetFileName]),
'Sample', MeasEdit.Text, 'Proportion', 'Mean', 'Sample', MeasEdit.Text + ' proportion', 'Values', 'Mean',
nil, obsP, nil, obsP,
UCL, LCL, AVG, UCL, LCL, AVG,
NaN, NaN, NaN NaN, NaN, NaN
@ -147,6 +147,7 @@ begin
end; end;
end; end;
procedure TPChartForm.Reset; procedure TPChartForm.Reset;
begin begin
inherited; inherited;

View File

@ -1,279 +1,144 @@
object UChartFrm: TUChartFrm inherited UChartForm: TUChartForm
Left = 641
Height = 339
Top = 233
Width = 425
HelpType = htKeyword HelpType = htKeyword
HelpKeyword = 'html/DefectsperUnituChart.htm' HelpKeyword = 'html/DefectsperUnituChart.htm'
AutoSize = True
Caption = 'Defects per unit U Chart' Caption = 'Defects per unit U Chart'
ClientHeight = 339
ClientWidth = 425
OnActivate = FormActivate OnActivate = FormActivate
OnCreate = FormCreate inherited SpecsPanel: TPanel
OnShow = FormShow Width = 432
Position = poMainFormCenter ClientWidth = 432
LCLVersion = '2.1.0.0' inherited ButtonPanel: TPanel
object Label1: TLabel Width = 432
AnchorSideLeft.Control = Owner ClientWidth = 432
AnchorSideTop.Control = Owner inherited CloseBtn: TButton
Left = 8 Left = 377
Height = 15 end
Top = 8 inherited ComputeBtn: TButton
Width = 97 Left = 293
BorderSpacing.Left = 8 end
BorderSpacing.Top = 8 inherited ResetBtn: TButton
Caption = 'Selection Variables' Left = 231
ParentColor = False end
end inherited HelpBtn: TButton
object Label2: TLabel Left = 180
AnchorSideLeft.Control = MeasEdit end
AnchorSideTop.Control = Owner inherited Bevel1: TBevel
Left = 187 Width = 424
Height = 15 end
Top = 8
Width = 117
BorderSpacing.Top = 8
Caption = 'Measurement Variable'
ParentColor = False
end
object Label3: TLabel
AnchorSideTop.Control = NoInspEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = NoInspEdit
Left = 215
Height = 15
Top = 72
Width = 131
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
Caption = 'No. inspected per group:'
ParentColor = False
end
object VarList: TListBox
AnchorSideLeft.Control = Owner
AnchorSideRight.Control = SigmaOpts
AnchorSideBottom.Control = Bevel2
AnchorSideBottom.Side = asrBottom
Left = 8
Height = 264
Top = 26
Width = 171
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Constraints.MinHeight = 220
ItemHeight = 0
OnClick = VarListClick
TabOrder = 0
end
object MeasEdit: TEdit
AnchorSideLeft.Control = VarList
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 187
Height = 23
Top = 25
Width = 230
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
ReadOnly = True
TabOrder = 1
Text = 'MeasEdit'
end
object NoInspEdit: TEdit
AnchorSideTop.Control = MeasEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 354
Height = 23
Top = 68
Width = 63
Alignment = taRightJustify
Anchors = [akTop, akRight]
BorderSpacing.Top = 20
BorderSpacing.Right = 8
TabOrder = 2
Text = 'NoInspEdit'
end
object SigmaOpts: TRadioGroup
AnchorSideTop.Control = NoInspEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 187
Height = 120
Top = 111
Width = 230
Anchors = [akTop, akRight]
AutoFill = False
AutoSize = True
BorderSpacing.Top = 20
BorderSpacing.Right = 8
Caption = 'No. of Sigma Units for UCL and LCL'
ChildSizing.LeftRightSpacing = 12
ChildSizing.TopBottomSpacing = 6
ChildSizing.VerticalSpacing = 2
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclTopToBottomThenLeftToRight
ChildSizing.ControlsPerLine = 4
ClientHeight = 100
ClientWidth = 226
ItemIndex = 0
Items.Strings = (
'3 Sigma (Default)'
'2 Sigma'
'1 Sigma'
'X Sigma where X = '
)
TabOrder = 3
object Label4: TLabel
Left = 134
Height = 19
Top = 6
Width = 80
Caption = ' '
ParentColor = False
end end
object Label5: TLabel inherited VarList: TListBox
Left = 134 Width = 212
Height = 19
Top = 27
Width = 80
Caption = ' '
ParentColor = False
end end
object Label6: TLabel inherited GroupLabel: TLabel
Left = 134 Left = 228
Height = 19 Visible = False
Top = 48
Width = 80
Caption = ' '
ParentColor = False
end end
object XSigmaEdit: TEdit inherited GroupEdit: TEdit
AnchorSideRight.Control = SigmaOpts Left = 228
AnchorSideRight.Side = asrBottom Width = 204
AnchorSideBottom.Side = asrBottom Visible = False
Left = 134 end
Height = 23 inherited MeasLabel: TLabel
Top = 69 Left = 228
Width = 80 end
inherited MeasEdit: TEdit
Left = 228
Width = 204
end
inherited Bevel2: TBevel
Left = 205
end
object Label3: TLabel[8]
AnchorSideTop.Control = NoInspEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = NoInspEdit
Left = 288
Height = 30
Top = 112
Width = 73
Alignment = taRightJustify Alignment = taRightJustify
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
TabOrder = 2
Text = 'XSigmaEdit'
end
end
object Panel1: TPanel
Left = 0
Height = 41
Top = 298
Width = 425
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 41
ClientWidth = 425
TabOrder = 4
object ResetBtn: TButton
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
AnchorSideRight.Control = ComputeBtn
Left = 216
Height = 25
Top = 8
Width = 54
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Top = 8
BorderSpacing.Right = 8 BorderSpacing.Right = 8
BorderSpacing.Bottom = 8 Caption = 'No. inspected'#13#10'per group:'
Caption = 'Reset' ParentColor = False
OnClick = ResetBtnClick
TabOrder = 1
end end
object ComputeBtn: TButton object NoInspEdit: TEdit[9]
AnchorSideLeft.Control = Panel1 AnchorSideTop.Control = MeasEdit
AnchorSideTop.Control = Panel1 AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = CloseBtn AnchorSideRight.Control = MeasEdit
Left = 278
Height = 25
Top = 8
Width = 76
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 2
end
object HelpBtn: TButton
Tag = 141
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
AnchorSideRight.Control = ResetBtn
Left = 157
Height = 25
Top = 8
Width = 51
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 0
end
object CloseBtn: TButton
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 362 Left = 369
Height = 25 Height = 23
Top = 8 Top = 116
Width = 55 Width = 63
Alignment = taRightJustify
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
AutoSize = True BorderSpacing.Top = 20
BorderSpacing.Top = 8 TabOrder = 4
BorderSpacing.Right = 8 Text = 'NoInspEdit'
end
object SigmaOpts: TRadioGroup[10]
AnchorSideLeft.Control = MeasEdit
AnchorSideTop.Control = NoInspEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = SpecsPanel
AnchorSideRight.Side = asrBottom
Left = 228
Height = 128
Top = 163
Width = 204
Anchors = [akTop, akLeft, akRight]
AutoFill = True
BorderSpacing.Top = 24
BorderSpacing.Bottom = 8 BorderSpacing.Bottom = 8
Caption = 'Close' Caption = 'No. of Sigma Units for UCL and LCL'
ModalResult = 11 ChildSizing.LeftRightSpacing = 12
TabOrder = 3 ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 108
ClientWidth = 200
ItemIndex = 0
Items.Strings = (
'3 Sigma (default)'
'2 Sigma'
'1 Sigma'
'x Sigmas with x = '
)
TabOrder = 5
object XSigmaEdit: TEdit
AnchorSideRight.Control = SigmaOpts
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 128
Height = 23
Top = 80
Width = 60
Alignment = taRightJustify
Anchors = [akLeft, akRight, akBottom]
TabOrder = 0
Text = 'XSigmaEdit'
end
end end
end end
object Bevel2: TBevel inherited SpecsSplitter: TSplitter
AnchorSideTop.Control = Panel1 Left = 435
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Panel1
Left = 0
Height = 8
Top = 290
Width = 425
Anchors = [akLeft, akRight, akBottom]
Shape = bsBottomLine
end end
object Bevel1: TBevel inherited PageControl1: TPageControl
Left = 8 Left = 443
Height = 29 Width = 478
Top = 308 inherited ReportPage: TTabSheet
Width = 42 ClientWidth = 470
Shape = bsSpacer inherited Panel1: TPanel
Width = 458
ClientWidth = 454
inherited ReportMemo: TMemo
Width = 446
end
end
end
end end
end end

View File

@ -1,7 +1,3 @@
// File for testing: "defects.laz"
// - Measurement variable: "Defects"
// - No. inspected per group: 1000
unit UChartUnit; unit UChartUnit;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
@ -9,376 +5,192 @@ unit UChartUnit;
interface interface
uses uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls,
StdCtrls, ExtCtrls, Buttons, ExtCtrls, StdCtrls, BasicSPCUnit;
MainUnit, Globals, OutputUnit, DataProcs, BlankFrmUnit, ContextHelpUnit;
type type
{ TUChartFrm } { TUChartForm }
TUChartFrm = class(TForm) TUChartForm = class(TBasicSPCForm)
Bevel1: TBevel;
Bevel2: TBevel;
ComputeBtn: TButton;
HelpBtn: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Panel1: TPanel;
ResetBtn: TButton;
CloseBtn: TButton;
XSigmaEdit: TEdit;
NoInspEdit: TEdit;
Label3: TLabel; Label3: TLabel;
MeasEdit: TEdit; NoInspEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
SigmaOpts: TRadioGroup; SigmaOpts: TRadioGroup;
VarList: TListBox; XSigmaEdit: TEdit;
procedure ComputeBtnClick(Sender: TObject);
procedure FormActivate(Sender: TObject); procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject); protected
procedure FormShow(Sender: TObject); procedure Compute; override;
procedure HelpBtnClick(Sender: TObject); procedure Reset; override;
procedure ResetBtnClick(Sender: TObject); function Validate(out AMsg: String; out AControl: TWinControl): Boolean; override;
procedure VarListClick(Sender: TObject); end;
private
{ private declarations }
FAutoSized: Boolean;
procedure PlotMeans(var Means: DblDyneVec; NoGrps: integer;
UCL, LCL, GrandMean: double);
function Validate(out AMsg: String; out AControl: TWinControl): boolean;
public
{ public declarations }
end;
var var
UChartFrm: TUChartFrm; UChartForm: TUChartForm;
implementation implementation
{$R *.lfm}
uses uses
Math; Math, Globals, MainUnit, DataProcs;
{ TUChartFrm } { TUChartForm }
procedure TUChartFrm.ResetBtnClick(Sender: TObject); procedure TUChartForm.Compute;
var var
i: integer; ColNoSelected: IntDyneVec = nil;
begin means: DblDyneVec = nil;
VarList.Clear; defPerUnit: DblDyneVec = nil;
MeasEdit.Text := ''; X, meanC, stdDevC, grandMean, sigma, UCL, LCL: Double;
NoInspEdit.Text := ''; i, size, count, numSamples: Integer;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
procedure TUChartFrm.VarListClick(Sender: TObject);
var
index: integer;
begin
index := VarList.ItemIndex;
if index > -1 then
begin
MeasEdit.Text := VarList.Items[index];
VarList.Items.Delete(index);
end;
end;
procedure TUChartFrm.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;
VarList.Constraints.MinWidth := SigmaOpts.Width * 3 div 4;
Constraints.MinWidth := Width;
Constraints.MinHeight := Height;
FAutoSized := true;
end;
procedure TUChartFrm.FormCreate(Sender: TObject);
begin
Assert(OS3MainFrm <> nil);
if OutputFrm = nil then
Application.CreateForm(TOutputFrm, OutputFrm);
if BlankFrm = nil then
Application.CreateForm(TBlankFrm, BlankFrm);
end;
procedure TUChartFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TUChartFrm.HelpBtnClick(Sender: TObject);
begin
if ContextHelpForm = nil then
Application.CreateForm(TContextHelpForm, ContextHelpForm);
ContextHelpForm.HelpMessage((Sender as TButton).Tag);
end;
procedure TUChartFrm.ComputeBtnClick(Sender: TObject);
var
i, MeasVar: integer;
X, size, count, UCL, LCL, Sigma: double;
GrandMean, meanc, stddevc: double;
means, defperunit: DblDyneVec;
cellstring: string;
ColNoSelected: IntDyneVec;
NoSelected: integer;
msg: String;
C: TWinControl;
lReport: TStrings; lReport: TStrings;
begin begin
if not Validate(msg, C) then SetLength(ColNoSelected, 1);
begin
C.SetFocus;
MessageDlg(msg, mtError, [mbOK], 0);
exit;
end;
SetLength(ColNoSelected,2);
MeasVar := 0;
for i := 1 to NoVariables do
begin
cellstring := OS3MainFrm.DataGrid.Cells[i,0];
if cellstring = MeasEdit.Text then MeasVar := i;
end;
NoSelected := 1;
ColNoSelected[0] := MeasVar; ColNoSelected[0] := MeasVar;
case SigmaOpts.ItemIndex of case SigmaOpts.ItemIndex of
0: Sigma := 3.0; 0: sigma := 3.0;
1: Sigma := 2.0; 1: sigma := 2.0;
2: Sigma := 1.0; 2: sigma := 1.0;
3: Sigma := StrToFloat(XSigmaEdit.Text); 3: sigma := StrToFloat(XSigmaEdit.Text);
end; end;
SetLength(means, NoCases + 1); SetLength(means, NoCases);
SetLength(defperunit, NoCases + 1); SetLength(defperunit, NoCases);
GrandMean := 0.0; GrandMean := 0.0;
size := 0.0; size := 0;
count := StrToFloat(NoInspEdit.Text); count := StrToInt(NoInspEdit.Text);
numSamples := 0;
for i := 1 to NoCases do for i := 1 to NoCases do
begin begin
if not GoodRecord(i,NoSelected,ColNoSelected) then continue; if not GoodRecord(i, Length(ColNoSelected), ColNoSelected) then continue;
X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[MeasVar,i])); X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[MeasVar, i]));
means[i] := X; means[i-1] := X;
GrandMean := GrandMean + X; grandMean := grandMean + X;
defperunit[i] := means[i] / count; defPerUnit[i-1] := X / count;
size := size + count; size := size + count;
inc(numSamples);
end; end;
meanc := GrandMean / size; meanC := grandMean / size;
stddevc := sqrt(meanc / count); stdDevC := sqrt(meanC / count);
UCL := meanc + Sigma * stddevc; UCL := meanc + sigma * stddevc;
LCL := meanc - Sigma * stddevc; LCL := meanc - sigma * stddevc;
// printed results // Print results
lReport := TStringList.Create; lReport := TStringList.Create;
try try
lReport.Add('DEFECTS c CONTROL CHART RESULTS'); lReport.Add('DEFECTS c CONTROL CHART RESULTS');
lReport.Add(''); lReport.Add('');
lReport.Add('Sample No Defects Defects Per Unit'); lReport.Add('Sample No Defects Defects Per Unit');
lReport.Add('------ ---------- ----------------'); lReport.Add('------ ---------- ----------------');
for i := 1 to NoCases do for i := 0 to numSamples-1 do
lReport.Add(' %3d %8.2f %8.2f', [i, means[i], defperunit[i]]); lReport.Add('%6d %10.2f %16.2f', [i, means[i], defPerUnit[i]]);
lReport.Add(''); lReport.Add('');
lReport.Add('Total Nonconformities: %8.2f', [GrandMean]); lReport.Add('Total Nonconformities: %8.2f', [grandMean]);
lReport.Add('No. of Samples: %8d', [NoCases]); lReport.Add('No. of Samples: %8d', [numSamples]);
lReport.Add('Def. / unit Mean: %8.3f', [meanc]); lReport.Add('Def. / unit Mean: %8.3f', [meanC]);
lReport.Add(' and StdDev: %8.3f', [stddevc]); lReport.Add(' and StdDev: %8.3f', [stdDevC]);
lReport.Add('Lower Control Limit: %8.3f', [LCL]); lReport.Add('Lower Control Limit: %8.3f', [LCL]);
lReport.Add('Upper Control Limit: %8.3f', [UCL]); lReport.Add('Upper Control Limit: %8.3f', [UCL]);
DisplayReport(lReport);
ReportMemo.Lines.Assign(lReport);
finally finally
lReport.Free; lReport.Free;
end; end;
// show graph // Show graph
PlotMeans(defperunit, NoCases, UCL, LCL, meanc); PlotMeans(
Format('Defect Control Chart for "%s"', [GetFileName]),
defperunit := nil; 'Sample', MeasEdit.Text + ' per Unit', 'Values', 'Mean',
means := nil; nil, defPerUnit,
ColNoSelected := nil; UCL, LCL, meanC,
NaN, NaN, NaN
);
end; end;
procedure TUChartFrm.PlotMeans(var Means: DblDyneVec; NoGrps: integer;
UCL, LCL, GrandMean: double); procedure TUChartForm.FormActivate(Sender: TObject);
var var
i, xpos, ypos, hleft, hright, vtop, vbottom, imagewide : integer; w: Integer;
vhi, hwide, offset, strhi : integer;
imagehi, maxval, minval, valincr, Yvalue : double;
Title : string;
begin begin
maxval := -10000.0; w := MaxValue([HelpBtn.Width, ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
minval := 10000.0; HelpBtn.Constraints.MinWidth := w;
for i := 1 to NoGrps do ResetBtn.Constraints.MinWidth := w;
begin ComputeBtn.Constraints.MinWidth := w;
if means[i] > maxval then maxval := means[i]; CloseBtn.Constraints.MinWidth := w;
if means[i] < minval then minval := means[i];
end;
if UCL > maxval then maxval := UCL;
if LCL < minval then minval := LCL;
BlankFrm.Show;
Title := 'DEFECT CONTROL (c) CHART FOR : ' + OS3MainFrm.FileNameEdit.Text;
BlankFrm.Caption := Title;
imagewide := BlankFrm.Image1.Width;
imagehi := BlankFrm.Image1.Height;
vtop := 20;
vbottom := round(imagehi) - 80;
vhi := vbottom - vtop;
hleft := 100;
hright := imagewide - 80;
hwide := hright - hleft;
BlankFrm.Image1.Canvas.Brush.Color := clLtGray; DisableAutoSizing;
BlankFrm.Image1.Canvas.FillRect(0, 0, BlankFrm.Image1.Width, BlankFrm.Image1.Height); try
SigmaOpts.AnchorSideRight.Control := nil;
VarList.Constraints.MinWidth := VarListLabel.Width;
SpecsPanel.Constraints.MinWidth := Max(
CloseBtn.Left + CloseBtn.Width - HelpBtn.Left + HelpBtn.BorderSpacing.Around,
SigmaOpts.Width * 2 + VarList.BorderSpacing.Right + VarList.BorderSpacing.Left
);
Constraints.MinHeight := SigmaOpts.Top + SigmaOpts.Height + SigmaOpts.BorderSpacing.Bottom + ButtonPanel.Height;
// Draw chart border SigmaOpts.AnchorSideRight.Control := MeasEdit;
BlankFrm.Image1.Canvas.Pen.Color := clBlack; SigmaOpts.AnchorSideRight.Side := asrBottom;
BlankFrm.Image1.Canvas.Brush.Color := clWhite; finally
BlankFrm.Image1.Canvas.Rectangle(hleft,vtop-10,hleft+hwide,vtop+vhi+10); EnableAutoSizing;
end;
// draw Grand Mean
ypos := round(vhi * ( (maxval - GrandMean) / (maxval - minval)));
ypos := ypos + vtop;
xpos := hleft;
BlankFrm.Image1.Canvas.Pen.Color := clRed;
BlankFrm.Image1.Canvas.Brush.Style := bsClear;
BlankFrm.Image1.Canvas.MoveTo(xpos,ypos);
xpos := hright;
BlankFrm.Image1.Canvas.LineTo(xpos,ypos);
Title := 'MEAN';
strhi := BlankFrm.Image1.Canvas.TextHeight(Title);
ypos := ypos - strhi div 2;
BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title);
// draw horizontal axis
BlankFrm.Image1.Canvas.Pen.Color := clBlack;
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.3f',[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[1]) / (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]) / (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; end;
function TUChartFrm.Validate(out AMsg: String; out AControl: TWinControl): Boolean;
var procedure TUChartForm.Reset;
n: Integer;
x: Double;
begin begin
inherited;
NoInspEdit.Clear;
XSigmaEdit.Clear;
end;
function TUChartForm.Validate(out AMsg: String; out AControl: TWinControl): Boolean;
var
x: Double;
n: Integer;
begin
Result := inherited;
if not Result then
exit;
Result := false; Result := false;
if MeasEdit.Text = '' then if (NoInspEdit.Text = '') then
begin begin
AMsg := 'Measurement variable is not specified.'; AMsg := 'Number of inspected parts per group not specified.';
AControl := MeasEdit; AControl := NoInspEdit;
exit; exit;
end; end;
if NoInspEdit.Text = '' then if not TryStrToInt(NoInspEdit.Text, n) then
begin begin
AMsg := 'Number inspected per group is not specified.'; AMsg := 'No valid number given for number of inspected parts per group.';
AControl := NoInspEdit; AControl := NoInspEdit;
exit; exit;
end; end;
if not TryStrToInt(NoInspEdit.Text, n) then
if SigmaOpts.ItemIndex = -1 then
begin begin
AMsg := 'Number inspected per group is not a valid number.'; AMsg := 'Number of sigma units for UCL and LCL not specified.';
AControl := NoInspEdit; AControl := SigmaOpts;
exit; exit;
end; end;
if SigmaOpts.ItemIndex = 3 then if SigmaOpts.ItemIndex = 3 then
begin begin
if XSigmaEdit.Text = '' then if (XSigmaEdit.Text = '') then
begin begin
AMsg := 'X sigma is not specified.'; AMsg := 'User-defined sigma units missing.';
AControl := XSigmaEdit; AControl := XSigmaEdit;
exit; exit;
end; end;
if not TryStrToFloat(XSigmaEdit.Text, x) then if not TryStrToFloat(XSigmaEdit.Text, x) then
begin begin
AMsg := 'X sigma is not a valid number.'; AMsg := 'No valid number given for sser-defined sigma units.';
AControl := XSigmaEdit; AControl := XSigmaEdit;
exit; exit;
end; end;
@ -386,8 +198,7 @@ begin
Result := true; Result := true;
end; end;
initialization
{$I uchartunit.lrs}
end. end.

View File

@ -646,14 +646,6 @@ begin
SingleLinkFrm.ShowModal; SingleLinkFrm.ShowModal;
end; end;
// Menu "Analysis" > "Statistical Process Control" > "CUMSUM Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_CUMSUMClick(Sender: TObject);
begin
if CUMSUMFrm = nil then
Application.CreateForm(TCUMSUMFrm, CUMSUMFrm);
CUMSUMFrm.ShowModal;
end;
// Menu "Correlation" > "Product-Moment" // Menu "Correlation" > "Product-Moment"
procedure TOS3MainFrm.MenuItem71Click(Sender: TObject); procedure TOS3MainFrm.MenuItem71Click(Sender: TObject);
begin begin
@ -923,14 +915,6 @@ begin
end; end;
// Menu "Analysis" > "Statistical Process Control" > "p Control Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_PChartClick(Sender: TObject);
begin
if PChartForm = nil then
Application.CreateForm(TPChartForm, PChartForm);
PChartForm.ShowModal;
end;
// Menu "Analysis" > "Descriptive" > "Plot X vs Y" // Menu "Analysis" > "Descriptive" > "Plot X vs Y"
procedure TOS3MainFrm.PlotXvsYClick(Sender: TObject); procedure TOS3MainFrm.PlotXvsYClick(Sender: TObject);
begin begin
@ -2133,29 +2117,6 @@ begin
KaplanMeierFrm.ShowModal; KaplanMeierFrm.ShowModal;
end; end;
// Menu "Analysis" > "Statistical Process Control" > "XBAR Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_XBarClick(Sender: TObject);
begin
if XBarChartForm = nil then
Application.CreateForm(TXBarChartForm, XBarChartForm);
XBarChartForm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "Range Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_RangeClick(Sender: TObject);
begin
if RChartForm = nil then
Application.CreateForm(TRChartForm, RChartForm);
RChartForm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "S Control Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_SChartClick(Sender: TObject);
begin
if SChartForm = nil then
Application.CreateForm(TSChartForm, SChartForm);
SChartForm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "Defect (nonconformity) c Chart" // Menu "Analysis" > "Statistical Process Control" > "Defect (nonconformity) c Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_CChartClick(Sender: TObject); procedure TOS3MainFrm.mnuAnalysisSPC_CChartClick(Sender: TObject);
@ -2165,6 +2126,61 @@ begin
CChartForm.ShowModal; CChartForm.ShowModal;
end; end;
// Menu "Analysis" > "Statistical Process Control" > "CUMSUM Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_CUMSUMClick(Sender: TObject);
begin
if CUMSUMFrm = nil then
Application.CreateForm(TCUMSUMFrm, CUMSUMFrm);
CUMSUMFrm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "p Control Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_PChartClick(Sender: TObject);
begin
if PChartForm = nil then
Application.CreateForm(TPChartForm, PChartForm);
PChartForm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "Range Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_RangeClick(Sender: TObject);
begin
if RChartForm = nil then
Application.CreateForm(TRChartForm, RChartForm);
RChartForm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "S Control Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_SChartClick(Sender: TObject);
begin
if SChartForm = nil then
Application.CreateForm(TSChartForm, SChartForm);
SChartForm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "Defects per Unit u Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_UChartClick(Sender: TObject);
begin
if UChartForm = nil then
Application.CreateForm(TUChartForm, UChartForm);
UChartForm.ShowModal;
end;
// Menu "Analysis" > "Statistical Process Control" > "XBAR Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_XBarClick(Sender: TObject);
begin
if XBarChartForm = nil then
Application.CreateForm(TXBarChartForm, XBarChartForm);
XBarChartForm.ShowModal;
end;
// Menu "Analysis" > "Financial" > "Sum of years digits depreciation" // Menu "Analysis" > "Financial" > "Sum of years digits depreciation"
procedure TOS3MainFrm.MenuItem11Click(Sender: TObject); procedure TOS3MainFrm.MenuItem11Click(Sender: TObject);
begin begin
@ -2173,14 +2189,6 @@ begin
SumYrsDepFrm.ShowModal; SumYrsDepFrm.ShowModal;
end; end;
// Menu "Analysis" > "Statistical Process Control" > "Defects per Unit u Chart"
procedure TOS3MainFrm.mnuAnalysisSPC_UChartClick(Sender: TObject);
begin
if UChartFrm = nil then
Application.CreateForm(TUChartFrm, UChartFrm);
UChartFrm.ShowModal;
end;
// Menu "Analysis" > "Financial" > "Straight line depreciation" // Menu "Analysis" > "Financial" > "Straight line depreciation"
procedure TOS3MainFrm.MenuItem14Click(Sender: TObject); procedure TOS3MainFrm.MenuItem14Click(Sender: TObject);
begin begin