procedure TImpefrm.edtRdzChange(Sender: TObject);
var fTmp: double;
begin
if FunPanel[0]=nil then Exit;
try
fTmp := StrToFloat(TEdit(Sender).Text);
with FunPanel[0].ZRectangle do
begin
case TEdit(Sender).Tag of
1: Rdz := fTmp;
2: Xdz := fTmp;
3: Rpy := fTmp;
4: Xpy := fTmp;
5: ZAngle := fTmp;
6: ZGrid := fTmp;
end;
FunPanel[0].Invalidate;
end;
except
end;
end;
procedure TImpefrm.edtRdzKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', '.', Char(VK_BACK)]) then
Key := #0;
end;
procedure TImpefrm.edtZzdChange(Sender: TObject);
var fTmp: double;
begin
if FunPanel[0]=nil then Exit;
try
fTmp := StrToFloat(TEdit(Sender).Text);
with FunPanel[0].ZRound do
begin
case TEdit(Sender).Tag of
1: Zzd := fTmp;
2: ZAngle := fTmp;
3: ZGene := fTmp;
4: ZGrid := fTmp;
5: ADelta := fTmp;
end;
FunPanel[0].Invalidate;
end;
except
end;
end;
procedure TImpefrm.edtXstChange(Sender: TObject);
var fTmp: double;
begin
if FunPanel[0]=nil then Exit;
try
fTmp := StrToFloat(TEdit(Sender).Text);
with FunPanel[0].ZAsyn do
begin
case TEdit(Sender).Tag of
1: Xst := fTmp;
2: Xd := fTmp;
3: Xdd := fTmp;
4: ZAngle := fTmp;
5: ZGrid := fTmp;
end;
FunPanel[0].Invalidate;
end;
except
end;
end;
function TImpefrm.GetFunPanel(index: integer): TFunPanel;
begin
Result := FFunPanel[index];
end;
procedure TImpefrm.SetFunPanel(index: integer; const v: TFunPanel);
begin
if v<>nil then
FFunPanel[index] := v;
end;
procedure TImpefrm.edtGrid4Change(Sender: TObject);
var fTmp: Double;
begin
if FunPanel[1]=nil then Exit;
try
fTmp := StrToFloat(TEdit(Sender).Text);
if fTmp < 0.00001 then Exit;
with FunPanel[1].Diff do
begin
case TEdit(Sender).Tag of
1: DMin := fTmp;
2: ZMin := fTmp;
3: Kzd := fTmp;
4: IGrid := fTmp;
end;
FunPanel[1].Invalidate;
end;
except
end;
end;
procedure TImpefrm.edtGrid5Change(Sender: TObject);
var fTmp: Double;
begin
if FunPanel[2]=nil then Exit;
try
fTmp := StrToFloat(TEdit(Sender).Text);
if Abs(fTmp) < 0.00001 then Exit;
with FunPanel[2].Dire do
begin
case TEdit(Sender).Tag of
1: AMax := fTmp;
2: AMin := fTmp;
3: ASense := fTmp;
4: AGrid := fTmp;
end;
FunPanel[2].Invalidate;
end;
except
end;
end;
procedure TImpefrm.pcSettingChange(Sender: TObject);
begin
case pcSetting.ActivePageIndex of
0: FunPanel[0].FunStyle := fsRectangle;
1: FunPanel[0].FunStyle := fsRound;
2: FunPanel[0].FunStyle := fsAsyn;
end;
end;
procedure TImpefrm.FormClose(Sender: TObject; var Action: TCloseAction);
var sTmp: string;
begin
with TInifile.Create(ExtractFilePath(ParamStr(0))+IniName) do
try
begin
sTmp := 'Im_Rectangle';
WriteString(sTmp, 'KX', edtKX.Text);
WriteString(sTmp, 'KR', edtKR.Text);
WriteString(sTmp, 'Ps1', edtPs1.Text);
sTmp := 'Im_Dire';
WriteString(sTmp, 'Voltage', edtVoltage.Text);
WriteString(sTmp, 'Current', edtCurrent.Text);