mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-12 00:45:40 +02:00
133 lines
3.8 KiB
ObjectPascal
133 lines
3.8 KiB
ObjectPascal
unit U_DimLineDialog;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, cxLookAndFeelPainters, StdCtrls, cxButtons, cxControls,
|
|
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, siComp, siLngLnk, cxGraphics,
|
|
cxLookAndFeels, Menus;
|
|
|
|
type
|
|
TF_DimLineDialog = class(TForm)
|
|
edDimValue: TcxMaskEdit;
|
|
bOK: TcxButton;
|
|
bCancel: TcxButton;
|
|
Label1: TLabel;
|
|
lbMessage: TLabel;
|
|
lng_Forms: TsiLangLinked;
|
|
procedure bCancelClick(Sender: TObject);
|
|
procedure edDimValueExit(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure edDimValueKeyPress(Sender: TObject; var Key: Char);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
ResValM: Double;
|
|
function Execute(const aCaption, aPrompt: string; AValM: Double): Boolean;
|
|
end;
|
|
|
|
var
|
|
F_DimLineDialog: TF_DimLineDialog;
|
|
|
|
implementation
|
|
uses U_BaseCommon, U_Constants, U_Common;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TF_DimLineDialog.bCancelClick(Sender: TObject);
|
|
begin
|
|
try
|
|
Close;
|
|
except
|
|
on E: Exception do AddExceptionToLogEx('TF_DimLineDialog.bCancelClick', E.Message);
|
|
end;
|
|
end;
|
|
|
|
procedure TF_DimLineDialog.edDimValueExit(Sender: TObject);
|
|
begin
|
|
try
|
|
if edDimValue.Text = '' then
|
|
edDimValue.Text := '0';
|
|
except
|
|
on E: Exception do AddExceptionToLogEx('TF_DimLineDialog.edDimValueExit', E.Message);
|
|
end;
|
|
end;
|
|
|
|
procedure TF_DimLineDialog.FormShow(Sender: TObject);
|
|
begin
|
|
try
|
|
//Tolik 21/01/2022 -- òóò âìåñòî îáîçíà÷åíèÿ âûâåäåì íàèìåíîâàíèå åäèíèöû èçìåðåíèÿ
|
|
// (Ðîìà ñêàçàë, à òî îáîçíà÷åíèÿ ôóòà, íàïðèìåð êàà àïîñòðîô - íè õðåíà íå âèäíî
|
|
// è íå èíôîðìàòèâíî äëÿ ïîëüçîâàòåëÿ)
|
|
// ñèñòåìà èçìåðåíèé
|
|
{
|
|
if GCurrProjUnitOfMeasure = umSM then
|
|
Label1.Caption := cMetric_sm;
|
|
if GCurrProjUnitOfMeasure = umM then
|
|
Label1.Caption := cMetric_m;
|
|
if GCurrProjUnitOfMeasure = umIn then
|
|
Label1.Caption := cWhitworth_in;
|
|
if GCurrProjUnitOfMeasure = umFt then
|
|
Label1.Caption := cWhitworth_ft;
|
|
}
|
|
{
|
|
if GCurrProjUnitOfMeasure = umSM then
|
|
Label1.Caption := fMetric_sm;
|
|
if GCurrProjUnitOfMeasure = umM then
|
|
Label1.Caption := fMetric_m;
|
|
if GCurrProjUnitOfMeasure = umIn then
|
|
Label1.Caption := fWhitworth_in;
|
|
if GCurrProjUnitOfMeasure = umFt then
|
|
Label1.Caption := fWhitworth_ft;
|
|
}
|
|
Label1.Caption := GetNormalSTRUom;
|
|
//
|
|
// EditMask
|
|
edDimValue.Properties.EditMask := '\d?\d?\d?\d?\d?' + DecimalSeparator + '\d?\d?\d?';
|
|
edDimValue.SetFocus;
|
|
edDimValue.SelStart := 0;
|
|
edDimValue.SelLength := Length(edDimValue.Text) + 1;
|
|
except
|
|
on E: Exception do AddExceptionToLogEx('TF_DimLineDialog.FormShow', E.Message);
|
|
end;
|
|
end;
|
|
|
|
procedure TF_DimLineDialog.edDimValueKeyPress(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_DimLineDialog.edDimValueKeyPress', E.Message);
|
|
end;
|
|
end;
|
|
|
|
function TF_DimLineDialog.Execute(const aCaption, aPrompt: string; AValM: Double): Boolean;
|
|
begin
|
|
Result := false;
|
|
ResValM := 0;
|
|
Caption := aCaption;
|
|
lbMessage.Caption := aPrompt;
|
|
//Tolik 13/10/2020 --
|
|
//edDimValue.Properties.EditMask := '\d?\d?\d?' + DecimalSeparator + '\d?\d?';
|
|
edDimValue.Properties.EditMask := '\d?\d?\d?\d?\d?\d?' + DecimalSeparator + '\d?\d?\d?';
|
|
//edDimValue.Text := FormatFloat(ffMask, MetreToUOM(AValM));
|
|
edDimValue.Text := FormatFloat('0.000', MetreToUOM(AValM));
|
|
//
|
|
if ShowModal = mrOk then
|
|
begin
|
|
Result := true;
|
|
ResValM := UOMToMetre(StrToFloat_My(edDimValue.Text));
|
|
end;
|
|
end;
|
|
|
|
end.
|