unit U_OrtholineParams; interface uses Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxLookAndFeelPainters, StdCtrls, cxButtons, cxControls, cxContainer, cxEdit, cxTextEdit, /// PowerCad PCPanel, PCDrawBox, PCDrawing, PowerCad, PCTypesUtils, DrawObjects, ExtDlgs, PCLayerDlg, OleCtnrs, PCgui, GuiStrings, DrawEngine, U_ESCadClasess, U_SCSEngineTest, cxMaskEdit, siComp, siLngLnk, cxGraphics, cxLookAndFeels, Menus; type TF_OrthoLineParams = class(TForm) bOK: TcxButton; bCancel: TcxButton; Label1: TLabel; Label2: TLabel; bDefault: TcxButton; edGAP: TcxMaskEdit; edNUM: TcxMaskEdit; lng_Forms: TsiLangLinked; procedure bCancelClick(Sender: TObject); procedure bDefaultClick(Sender: TObject); procedure bOKClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure edGAPKeyPress(Sender: TObject; var Key: Char); procedure edNUMKeyPress(Sender: TObject; var Key: Char); procedure edGAPExit(Sender: TObject); procedure edNUMExit(Sender: TObject); private { Private declarations } public CurrentGap: string; CurrentCount: string; { Public declarations } end; var F_OrthoLineParams: TF_OrthoLineParams; implementation uses USCS_Main, U_CAD, U_Common, U_BaseCommon, U_Constants; {$R *.dfm} procedure TF_OrthoLineParams.bCancelClick(Sender: TObject); begin Close; end; procedure TF_OrthoLineParams.bDefaultClick(Sender: TObject); begin edGAP.Text := '4'; edNUM.Text := '2'; GDefaultGap := 4; GDefaultNum := 2; end; procedure TF_OrthoLineParams.bOKClick(Sender: TObject); begin try if (CurrentGap <> edGAP.Text) or (CurrentCount <> edNUM.Text) then begin GDefaultGap := StrToFloat_My(edGAP.Text); GDefaultNum := StrToInt(edNUM.Text); GCurrentConnectorType := ct_Clear; if GDefaultNum = 1 then GDefaultGap := 1; if GDefaultNum > 1 then if GDefaultGap < 2 then GDefaultGap := 2; end; GCadForm.PCad.SetTool(toFigure, 'TOrthoLine'); except on E: Exception do AddExceptionToLogEx('TF_OrthoLineParams.bOKClick', E.Message); end; end; procedure TF_OrthoLineParams.FormShow(Sender: TObject); begin // MaskEdit edGAP.Properties.EditMask := '\d?\d?' + DecimalSeparator + '\d?'; GDefaultGap := ABS(GDefaultGap); GDefaultNum := ABS(GDefaultNum); edGAP.Text := FormatFloat(ffMask, GDefaultGap); edNUM.Text := IntToStr(GDefaultNum); CurrentGap := edGAP.Text; CurrentCount := edNUM.Text; bOK.SetFocus; edGAP.SetFocus; edGAP.SelStart := 0; edGAP.SelLength := Length(edGAP.Text) + 1; end; procedure TF_OrthoLineParams.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = #27 then Close; end; procedure TF_OrthoLineParams.edGAPKeyPress(Sender: TObject; var Key: Char); begin try if (Key = '.') or (Key = ',') then if Key <> DecimalSeparator then Key := #0; if Key = #13 then begin bOK.SetFocus; bOK.Click; end; except on E: Exception do AddExceptionToLogEx('TF_OrthoLineParams.edGAPKeyPress', E.Message); end; end; procedure TF_OrthoLineParams.edNUMKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin bOK.SetFocus; bOK.Click; end; end; procedure TF_OrthoLineParams.edGAPExit(Sender: TObject); begin if edGAP.Text = '' then edGAP.Text := CurrentGap; end; procedure TF_OrthoLineParams.edNUMExit(Sender: TObject); begin if edNUM.Text = '' then edNUM.Text := CurrentCount; end; end.