| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | 
							- unit NewProjectFrm;
 
- interface
 
- uses
 
-   UtilMethods, ZhAPI, sdIDTree,
 
-   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 
-   Dialogs, StdCtrls, ExtCtrls;
 
- type
 
-   TNewProjectForm = class(TForm)
 
-     ldeValue: TLabeledEdit;
 
-     labTip: TLabel;
 
-     btnOK: TButton;
 
-     btnCancel: TButton;
 
-     procedure btnCancelClick(Sender: TObject);
 
-     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
 
-   private
 
-     FParent: TsdIDTreeNode;
 
-     FCurID: Integer;
 
-     function CheckLegalChar: Boolean;
 
-     function CheckSameFileName: Boolean;
 
-   public
 
-     function GetValue: string;
 
-     procedure SetValue(const AValue: string; ACurID: Integer);
 
-     property Parent: TsdIDTreeNode read FParent write FParent;
 
-   end;
 
-   function InputNewProjectName(var FileName: string;
 
-     const Caption: string; AParent: TsdIDTreeNode; ACurID: Integer = -1): Boolean;
 
- implementation
 
- uses
 
-   Globals, ConstUnit, ProjectManagerDm;
 
- {$R *.dfm}
 
- function InputNewProjectName(var FileName: string;
 
-   const Caption: string; AParent: TsdIDTreeNode;
 
-   ACurID: Integer = -1): Boolean;
 
- var
 
-   NewProjectForm: TNewProjectForm;
 
- begin
 
-   NewProjectForm := TNewProjectForm.Create(nil);
 
-   try
 
-     NewProjectForm.Caption := Caption;
 
-     NewProjectForm.SetValue(FileName, ACurID);
 
-     NewProjectForm.Parent := AParent;
 
-     NewProjectForm.CheckSameFileName;
 
-     Result := NewProjectForm.ShowModal = mrOk;
 
-     FileName := NewProjectForm.GetValue;
 
-   finally
 
-     NewProjectForm.Free;
 
-   end;
 
- end;
 
- procedure TNewProjectForm.btnCancelClick(Sender: TObject);
 
- begin
 
-   Close;
 
- end;
 
- function TNewProjectForm.GetValue: string;
 
- begin
 
-   Result := ldeValue.Text;
 
- end;
 
- procedure TNewProjectForm.FormCloseQuery(Sender: TObject;
 
-   var CanClose: Boolean);
 
- begin
 
-   CanClose := (CheckLegalChar and not CheckSameFileName) or (ModalResult = mrCancel);
 
- end;
 
- function TNewProjectForm.CheckLegalChar: Boolean;
 
- begin
 
-   Result := CheckFileNameLegal(GetValue);
 
-   if not Result then
 
-     labTip.Caption := '不能包含特殊字符[/ \ : * ? " < > |],请重新输入!';
 
- end;
 
- procedure TNewProjectForm.SetValue(const AValue: string; ACurID: Integer);
 
- begin
 
-   ldeValue.Text := AValue;
 
-   FCurID := ACurID;
 
- end;
 
- function TNewProjectForm.CheckSameFileName: Boolean;
 
- var
 
-   iSameNameID: Integer;
 
- begin
 
-   Result := False;
 
-   // 云版只认ID,随便重名不会怀孕
 
-   if G_IsCloud then Exit;
 
-   if ldeValue.Text <> '' then
 
-   begin
 
-     iSameNameID := ProjectManager.ProjectID(ldeValue.Text, Parent);
 
-     Result := (iSameNameID <> FCurID) and (iSameNameID <> -1);
 
-     if Result then
 
-       labTip.Caption := '存在同名文件,请修改标段名称!';
 
-   end;
 
- end;
 
- end.
 
 
  |