コード例 #1
0
 public PascalABCCompiler.IProjectInfo OpenProject(string projectFileName)
 {
     PascalABCCompiler.ProjectInfo _currentProject = new PascalABCCompiler.ProjectInfo();
     _currentProject.Load(projectFileName);
     currentProject = _currentProject;
     return(currentProject);
 }
コード例 #2
0
 public void CloseProject()
 {
     currentProject = null;
     uid            = 1;
     Dirty          = false;
     GC.Collect();
 }
コード例 #3
0
        public PascalABCCompiler.IProjectInfo CreateProject(string projectName, string projectFileName, PascalABCCompiler.ProjectType projectType)
        {
            currentProject      = new PascalABCCompiler.ProjectInfo();
            currentProject.name = projectName;
            currentProject.path = projectFileName;
            string dir = Path.GetDirectoryName(projectFileName);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }
            currentProject.include_debug_info = true;

            currentProject.project_type = projectType;
            currentProject.source_files.Add(new PascalABCCompiler.SourceCodeFileInfo(projectName + ".pas", Path.Combine(dir, projectName + ".pas")));
            currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System", "System.dll"));
            if (projectType == PascalABCCompiler.ProjectType.WindowsApp)
            {
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Windows.Forms", "System.Windows.Forms.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Drawing", "System.Drawing.dll"));
                //roman//
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Core", "System.Core.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Data", "System.Data.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Data.DataSetExtensions", "System.Data.DataSetExtensions.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Xml", "System.Xml.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Xml.Linq", "System.Xml.Linq.dll"));
                //roman//
            }
            currentProject.main_file        = Path.Combine(dir, projectName + ".pas");
            currentProject.generate_xml_doc = false;
            currentProject.delete_exe       = true;
            currentProject.delete_pdb       = true;
            currentProject.major_version    = 0;
            currentProject.minor_version    = 0;
            currentProject.build_version    = 0;
            currentProject.revision_version = 0;
            currentProject.output_directory = dir;
            StreamWriter sw = File.CreateText(Path.Combine(dir, projectName + ".pas"));

            currentProject.output_file_name = projectName + ".exe";
            if (projectType == PascalABCCompiler.ProjectType.ConsoleApp)
            {
                //sw.WriteLine("program "+projectName+";");
                //sw.WriteLine();
                //sw.WriteLine("uses System;");
                //sw.WriteLine();
                sw.WriteLine("begin");
                sw.WriteLine();
                sw.Write("end.");
            }
            else if (projectType == PascalABCCompiler.ProjectType.Library)
            {
                sw.WriteLine("library " + projectName + ";");
                sw.WriteLine();
                //sw.WriteLine("uses System;");
                //sw.WriteLine();
                sw.Write("end.");
                currentProject.output_file_name = projectName + ".dll";
            }
            sw.Close();
            currentProject.Save();
            //VisualPABCSingleton.MainForm.OpenFile(Path.Combine(dir,projectName+".pas"));
            return(currentProject);
        }
コード例 #4
0
		public PascalABCCompiler.IProjectInfo CreateProject(string projectName, string projectFileName, PascalABCCompiler.ProjectType projectType)
		{
			currentProject = new PascalABCCompiler.ProjectInfo();
			currentProject.name = projectName;
			currentProject.path = projectFileName;
			string dir = Path.GetDirectoryName(projectFileName);
			if (!Directory.Exists(dir))
			{
				Directory.CreateDirectory(dir);
			}
			currentProject.include_debug_info = true;
           
			currentProject.project_type = projectType;
			currentProject.source_files.Add(new PascalABCCompiler.SourceCodeFileInfo(projectName+".pas",Path.Combine(dir,projectName+".pas")));
			currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System","System.dll"));
			if (projectType == PascalABCCompiler.ProjectType.WindowsApp)
			{
				currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Windows.Forms","System.Windows.Forms.dll"));
				currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Drawing","System.Drawing.dll"));
                //roman//
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Core", "System.Core.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Data", "System.Data.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Data.DataSetExtensions", "System.Data.DataSetExtensions.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Xml", "System.Xml.dll"));
                currentProject.references.Add(new PascalABCCompiler.ReferenceInfo("System.Xml.Linq", "System.Xml.Linq.dll"));
                //roman//
			}
			currentProject.main_file = Path.Combine(dir,projectName+".pas");
			currentProject.generate_xml_doc = false;
            currentProject.delete_exe = true;
            currentProject.delete_pdb = true;
            currentProject.major_version = 0;
            currentProject.minor_version = 0;
            currentProject.build_version = 0;
            currentProject.revision_version = 0;
			currentProject.output_directory = dir;
			StreamWriter sw = File.CreateText(Path.Combine(dir,projectName+".pas"));
			currentProject.output_file_name = projectName + ".exe";
			if (projectType == PascalABCCompiler.ProjectType.ConsoleApp)
			{
				//sw.WriteLine("program "+projectName+";");
				//sw.WriteLine();
				//sw.WriteLine("uses System;");
				//sw.WriteLine();
				sw.WriteLine("begin");
				sw.WriteLine();
				sw.WriteLine("end.");
			}
			else if (projectType == PascalABCCompiler.ProjectType.Library)
			{
				sw.WriteLine("library "+projectName+";");
				sw.WriteLine();
				//sw.WriteLine("uses System;");
				//sw.WriteLine();
				sw.WriteLine("end.");
				currentProject.output_file_name = projectName + ".dll";
			}
			sw.Close();
			currentProject.Save();
			//VisualPABCSingleton.MainForm.OpenFile(Path.Combine(dir,projectName+".pas"));
			return currentProject;
		}
コード例 #5
0
		public void CloseProject()
		{
			currentProject = null;
			uid = 1;
			Dirty = false;
		}
コード例 #6
0
 public PascalABCCompiler.IProjectInfo OpenProject(string projectFileName)
 {
     PascalABCCompiler.ProjectInfo _currentProject = new PascalABCCompiler.ProjectInfo();
     _currentProject.Load(projectFileName);
     currentProject = _currentProject;
     return currentProject;
 }