unit RelChangeUnit; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, contexthelpunit; type { TRelChangeFrm } TRelChangeFrm = class(TForm) HelpBtn: TButton; ResetBtn: TButton; CancelBtn: TButton; ComputeBtn: TButton; ReturnBtn: TButton; OldRelEdit: TEdit; OldVarEdit: TEdit; NewVarEdit: TEdit; NewRelEdit: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure ComputeBtnClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure HelpBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject); private { private declarations } public { public declarations } end; var RelChangeFrm: TRelChangeFrm; implementation { TRelChangeFrm } procedure TRelChangeFrm.ResetBtnClick(Sender: TObject); begin OldRelEdit.Text := ''; NewRelEdit.Text := ''; OldVarEdit.Text := ''; NewVarEdit.Text := ''; end; procedure TRelChangeFrm.FormShow(Sender: TObject); begin ResetBtnClick(self); end; procedure TRelChangeFrm.HelpBtnClick(Sender: TObject); begin ContextHelpForm.HelpMessage((Sender as TButton).tag); end; procedure TRelChangeFrm.ComputeBtnClick(Sender: TObject); var OldRel, NewRel, OldVar, NewVar : double; begin OldRel := StrToFloat(OldRelEdit.Text); OldVar := StrToFloat(OldVarEdit.Text); NewVar := StrToFloat(NewVarEdit.Text); NewRel := 1.0 - ((OldVar / NewVar) * (1.0 - OldRel)); NewRelEdit.Text := FloatToStr(NewRel); end; initialization {$I relchangeunit.lrs} end.