Files
lazarus-ccr/applications/lazstats/source/forms/analysis/measurement_programs/kr21unit.pas
2020-04-18 21:19:03 +00:00

89 lines
1.7 KiB
ObjectPascal

unit KR21Unit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls;
type
{ TKR21Frm }
TKR21Frm = class(TForm)
Bevel1: TBevel;
Bevel2: TBevel;
Panel1: TPanel;
ResetBtn: TButton;
ComputeBtn: TButton;
CloseBtn: TButton;
NoItemsEdit: TEdit;
MeanEdit: TEdit;
StdDevEdit: TEdit;
RelEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure ComputeBtnClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
KR21Frm: TKR21Frm;
implementation
{ TKR21Frm }
uses
Math;
procedure TKR21Frm.ResetBtnClick(Sender: TObject);
begin
NoItemsEdit.Text := '';
MeanEdit.Text := '';
StdDevEdit.Text := '';
RelEdit.Text := '';
end;
procedure TKR21Frm.FormActivate(Sender: TObject);
var
w: Integer;
begin
w := MaxValue([ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]);
ResetBtn.Constraints.MinWidth := w;
ComputeBtn.Constraints.MinWidth := w;
CloseBtn.Constraints.MinWidth := w;
end;
procedure TKR21Frm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TKR21Frm.ComputeBtnClick(Sender: TObject);
var
items, mean, stddev, rel: double;
begin
items := StrToFloat(NoItemsEdit.Text);
mean := StrToFloat(MeanEdit.Text);
stddev := StrToFloat(StdDevEdit.Text);
rel := (items / (items - 1.0)) * (1.0 - (mean * (items - mean))/(items * sqr(stddev)));
RelEdit.Text := FormatFloat('0.00000', rel);
end;
initialization
{$I kr21unit.lrs}
end.