Ignore:
Timestamp:
Aug 6, 2012, 2:35:22 PM (12 years ago)
Author:
chronos
Message:
  • Added: Registration of new file templates for modules.
  • Added: Program stores last opened file list in registry.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/StudioModules/LDModulePascal/ULDModulePascal.pas

    r12 r15  
    66
    77uses
    8   Classes, SysUtils, UModularSystem, USource;
     8  Classes, SysUtils, UModularSystem, USource, UProject;
    99
    1010type
     11  { TProjectTemplateConsoleApp }
     12
     13  TProjectTemplateConsoleApp = class(TFileTemplate)
     14    constructor Create; override;
     15    function Execute: TSource; override;
     16  end;
     17
     18  { TProjectTemplateGUIApp }
     19
     20  TProjectTemplateGUIApp = class(TFileTemplate)
     21    constructor Create; override;
     22    function Execute: TSource; override;
     23  end;
     24
     25  { TProjectTemplatePackage }
     26
     27  TProjectTemplatePackage = class(TFileTemplate)
     28    constructor Create; override;
     29    function Execute: TSource; override;
     30  end;
     31
     32  { TProjectTemplateUnit }
     33
     34  TProjectTemplateUnit = class(TFileTemplate)
     35    constructor Create; override;
     36    function Execute: TSource; override;
     37  end;
    1138
    1239  { TLDModulePascal }
     
    1542  private
    1643    PasFileType: TSourceType;
     44    ProjectTemplateConsoleApp: TProjectTemplateConsoleApp;
     45    ProjectTemplateGUIApp: TProjectTemplateGUIApp;
     46    ProjectTemplateUnit: TProjectTemplateUnit;
    1747  public
    1848    constructor Create; override;
     
    4878    PasFileType.Title := 'Pascal source';
    4979    RegisterFileType(PasFileType);
     80    ProjectTemplateConsoleApp := TProjectTemplateConsoleApp.Create;
     81    RegisterFileTemplate(ProjectTemplateConsoleApp);
     82    ProjectTemplateGUIApp := TProjectTemplateGUIApp.Create;
     83    RegisterFileTemplate(ProjectTemplateGUIApp);
     84    ProjectTemplateUnit := TProjectTemplateUnit.Create;
     85    RegisterFileTemplate(ProjectTemplateUnit);
    5086  end;
    5187  inherited Install;
     
    5692  inherited Uninstall;
    5793  with TLDStudioAPI(API) do begin
     94    RegisterFileTemplate(ProjectTemplateUnit);
     95    FreeAndNil(ProjectTemplateUnit);
     96    UnregisterFileTemplate(ProjectTemplateGUIApp);
     97    FreeAndNil(ProjectTemplateGUIApp);
     98    UnregisterFileTemplate(ProjectTemplateConsoleApp);
     99    FreeAndNil(ProjectTemplateConsoleApp);
    58100    UnregisterFileType(PasFileType);
    59     PasFileType.Free;
    60   end;
     101    FreeAndNil(PasFileType);
     102  end;
     103end;
     104
     105resourcestring
     106  SConsoleApplication = 'Console application';
     107  SUnit = 'Unit';
     108  SPackage = 'Package';
     109  SGUIApplication = 'GUI application';
     110
     111{ TProjectTemplateUnit }
     112
     113constructor TProjectTemplateUnit.Create;
     114begin
     115  inherited Create;
     116  Name := SUnit;
     117  //FileTypeClass := TSourceText;
     118end;
     119
     120function TProjectTemplateUnit.Execute: TSource;
     121var
     122  NewFile: TSource;
     123begin
     124  //inherited InitProject(Project);
     125  Result := TSourceText.Create;
     126  Result.Name := 'Unit1.pas';
     127  with TSourceText(Result).Content do begin
     128    Add('unit Unit1;');
     129    Add('');
     130    Add('interface');
     131    Add('');
     132    Add('implementation');
     133    Add('');
     134    Add('end.');
     135  end;
     136end;
     137
     138{ TProjectTemplatePackage }
     139
     140constructor TProjectTemplatePackage.Create;
     141begin
     142  inherited Create;
     143  Name := SPackage;
     144end;
     145
     146function TProjectTemplatePackage.Execute: TSource;
     147var
     148  NewFile: TSourceText;
     149begin
     150{  Result := TProject.Create;
     151  Result.Name := 'Package1';
     152  NewFile := TSourceText.Create;
     153  NewFile.Name := 'Package1.bpl';
     154  with NewFile.Content do begin
     155    Add('package Package1;');
     156    Add('');
     157    Add('requires');
     158    Add('  RTL;');
     159    Add('');
     160    Add('end.');
     161  end;
     162  TProject(Result).Files.Add();
     163  TProject(Result).MainSource := NewFile;
     164}end;
     165
     166{ TProjectTemplateGUIApp }
     167
     168constructor TProjectTemplateGUIApp.Create;
     169begin
     170  inherited Create;
     171  Name := SGUIApplication;
     172end;
     173
     174function TProjectTemplateGUIApp.Execute: TSource;
     175var
     176  NewFile: TProjectFile;
     177begin
     178{  inherited InitProject(Project);
     179  NewFile := Project.Files.AddFile('Project1.dpr');
     180  with NewFile.Source do begin
     181    Add('program Project1;');
     182    Add('');
     183    Add('uses');
     184    Add('  GUI;');
     185    Add('');
     186    Add('var');
     187    Add('  Application: TApplication');
     188    Add('begin');
     189    Add('  Application := TApplication.Create;');
     190    Add('  Application.Run;');
     191    Add('  Application.Free;');
     192    Add('end.');
     193  end;
     194  Project.MainSource := NewFile;
     195}end;
     196
     197{ TProjectTemplateConsoleApp }
     198
     199constructor TProjectTemplateConsoleApp.Create;
     200begin
     201  inherited Create;
     202  Name := SConsoleApplication;
     203end;
     204
     205function TProjectTemplateConsoleApp.Execute: TSource;
     206var
     207  NewFile: TProjectFile;
     208begin
     209{  inherited InitProject(Project);
     210  NewFile := Project.Files.AddFile('Project1.dpr');
     211  with NewFile.Source do begin
     212    Add('program Project1;');
     213    Add('');
     214    Add('begin');
     215    Add('end.');
     216  end;
     217  Project.MainSource := NewFile;}
    61218end;
    62219
Note: See TracChangeset for help on using the changeset viewer.