internal void SaveFileAs(CodeFileDocumentControl TbPage, string FileName) { try { if (TbPage.DesignerAndCodeTabs != null) { TbPage.GenerateDesignerCode(null); } CodeFileDocumentControl dt = TbPage; WatcherService.DisableWatcher(FileName); //dt.TextEditor.Encoding = VisualEnvironmentCompiler.DefaultFileEncoding; if (!dt.TextEditor.CanSaveWithCurrentEncoding()) { dt.TextEditor.Encoding = Encoding.UTF8; dt.TextEditor.SaveFile(FileName); dt.TextEditor.Encoding = VisualEnvironmentCompiler.DefaultFileEncoding; } else { dt.TextEditor.SaveFile(FileName); } WatcherService.EnableWatcher(FileName); OpenDocuments.Remove(Tools.FileNameToLower(dt.FileName)); OpenDocuments.Add(Tools.FileNameToLower(FileName), TbPage); WorkbenchServiceFactory.CodeCompletionParserController.RenameFile(dt.FileName, FileName); TbPage.SaveFormFile(FileName); dt.DocumentChanged = false; dt.FileName = FileName; dt.DocumentSavedToDisk = true; dt.SetHighlightingStrategyForFile(FileName); SetTabPageText(TbPage); if (!WorkbenchServiceFactory.RunService.HasRunArgument(FileName.ToLower())) { WorkbenchServiceFactory.RunService.AddRunArgument(FileName.ToLower(), ""); } if (TbPage == CurrentCodeFileDocument) { UpdateSaveButtonsEnabled(); } } catch (Exception ex) { MessageBox.Show(String.Format(Form1StringResources.Get("SAVE_FILE_ERROR_TEXT{0}"), FileName), PascalABCCompiler.StringResources.Get("!ERROR"), MessageBoxButtons.OK, MessageBoxIcon.Error); } }