You've already forked lazarus-ccr
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7447 8e941d3f-bd1b-0410-a28a-d453659cc2b4
125 lines
2.6 KiB
ObjectPascal
125 lines
2.6 KiB
ObjectPascal
unit RelChangeUnit;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
|
|
StdCtrls, ExtCtrls,
|
|
ContextHelpUnit;
|
|
|
|
type
|
|
|
|
{ TRelChangeFrm }
|
|
|
|
TRelChangeFrm = class(TForm)
|
|
Bevel1: TBevel;
|
|
Bevel2: TBevel;
|
|
HelpBtn: TButton;
|
|
Panel1: TPanel;
|
|
ResetBtn: TButton;
|
|
ComputeBtn: TButton;
|
|
CloseBtn: TButton;
|
|
OldRelEdit: TEdit;
|
|
OldVarEdit: TEdit;
|
|
NewVarEdit: TEdit;
|
|
NewRelEdit: TEdit;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
Label4: TLabel;
|
|
procedure ComputeBtnClick(Sender: TObject);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure HelpBtnClick(Sender: TObject);
|
|
procedure ResetBtnClick(Sender: TObject);
|
|
private
|
|
{ private declarations }
|
|
FAutoSized: Boolean;
|
|
public
|
|
{ public declarations }
|
|
end;
|
|
|
|
var
|
|
RelChangeFrm: TRelChangeFrm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Math, Utils;
|
|
|
|
{ TRelChangeFrm }
|
|
|
|
procedure TRelChangeFrm.ResetBtnClick(Sender: TObject);
|
|
begin
|
|
OldRelEdit.Text := '';
|
|
NewRelEdit.Text := '';
|
|
OldVarEdit.Text := '';
|
|
NewVarEdit.Text := '';
|
|
end;
|
|
|
|
procedure TRelChangeFrm.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.MinHeight := Height;
|
|
Constraints.MaxHeight := Height;
|
|
|
|
FAutoSized := true;
|
|
end;
|
|
|
|
procedure TRelChangeFrm.FormShow(Sender: TObject);
|
|
begin
|
|
ResetBtnClick(self);
|
|
end;
|
|
|
|
procedure TRelChangeFrm.HelpBtnClick(Sender: TObject);
|
|
begin
|
|
if ContextHelpForm = nil then
|
|
Application.CreateForm(TContextHelpForm, ContextHelpForm);
|
|
ContextHelpForm.HelpMessage((Sender as TButton).Tag);
|
|
end;
|
|
|
|
procedure TRelChangeFrm.ComputeBtnClick(Sender: TObject);
|
|
var
|
|
oldRel, newRel, oldVar, newVar: double;
|
|
begin
|
|
if (OldRelEdit.Text = '') or not TryStrToFloat(OldRelEdit.Text, oldRel) then
|
|
begin
|
|
OldRelEdit.SetFocus;
|
|
ErrorMsg('Valid number required.');
|
|
exit;
|
|
end;
|
|
if (OldVarEdit.Text = '') or not TryStrToFloat(OldVarEdit.Text, oldVar) then
|
|
begin
|
|
OldVarEdit.SetFocus;
|
|
ErrorMsg('Valid number required.');
|
|
exit;
|
|
end;
|
|
if (NewVarEdit.Text = '') or not TryStrToFloat(NewVarEdit.Text, newVar) then
|
|
begin
|
|
NewVarEdit.SetFocus;
|
|
ErrorMsg('Valid number required.');
|
|
exit;
|
|
end;
|
|
newRel := 1.0 - (oldVar / newVar) * (1.0 - oldRel);
|
|
NewRelEdit.Text := FormatFloat('0.00000', newRel);
|
|
end;
|
|
|
|
|
|
initialization
|
|
{$I relchangeunit.lrs}
|
|
|
|
end.
|
|
|