The index of the file with the main source, for example the lpr file All files of project plus files in source editor plus closed files once open in the source editor The index runs from 0..FileCount Files has 0..FileCount-1 items The main source file, can be nil, otherwise equivalent to Files[MainFileID] The project title, used for Application.Title statement True if project has not yet a full file name, i.e. it was not yet saved Create a new file, which is not yet added to the project Files Use AddFile when the new file is done. Add a file to the project Removes and frees a file. save metadata of closed files in the lpi Do not save metdata of foreign files in the lpi (i.e. files with IsPartOfProject=false) Main unit is pascal, IDE can check it for common mistakes IDE updates the uses section of the main file if units are added, removed or renamed Automatically add/remove/update Application.CreateForm statements for forms and datamodules Project can be executed Compile designtime packages into project Designtime packages are only needed for designing the project forms, because they contain component and property editors. Only runtime packages contain code. If you want to test a designtime package you can create a project with this flag. Then the IDE will add the unit paths to the designtime packages too. Set this flag to tell the IDE to store .lrs files in the unit output directory instead of the directory where the lfm is. After creating the new project the IDE applies the users build modes and compiler options. The active compiler options of the project. Each build mode has its own set of compiler options. Do not store a reference to this. The file path of the lpi The file path of the lps Where to store the project session Set to true by project properties. Set it to false to clear all modified flags, excluding session flags Units and build modes have their own Modified. Set to true if some session data has changed. Set this to false to set all session flags to false. Search path for fpdoc files. Multiple directories are separated by semicolon. Macros are allowed. The fpdoc "package name". Leave empty to use project name. File mask for the manual clean of the output directory. Default: all files File mask for the source directories on a manual clean up. Default: ppu and o files Name value pairs for designtime packages. Every designtime package can store arbitrary data in each project. Use this property alone. All other unknown data will be purged from the lpi. It's recommended to use long and unique names like PackageName_MyPath. As CustomData but stored in the lps On OS X applications need a .app directory called an "Application Bundle". Name shown in the "New Project" dialog. Should return a resourcestring. The description shown in the "New project" dialog. Should return a resourcestring. Called after user choose this project type to create. The current project still exists. It can start a dialog to ask some settings. Return mrOk to continue. Called after the old project was closed and the new was created. Set global flags. Do not create files at this point. Return mrOk to continue. After this the IDE loads user settings and sets up according to the current settings. Called after the global flags of the project are completed. You can now create or open files. For example: Result:=LazarusIDE.DoOpenEditorFile(AProject.MainFile.Filename,-1,-1, [ofProjectLoading,ofRegularFile]); The internal registration name. This name must be unique. It can be used by other packages to use your descriptor. If you want to create the new project via some other ways than the "New project" dialog set this to false. The default file extension for creating new source files. Default is .pas