1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
unit frmTemplateVariables;
{$mode objfpc}{$H+}
interface
uses
Classes,
// LCL
Forms, ExtCtrls, Grids, StdCtrls, EditBtn, ButtonPanel,
// ProjectTemplates
ProjectTemplates;
type
{ TProjectVariablesForm }
TProjectVariablesForm = class(TForm)
ButtonPanel1: TButtonPanel;
DEDestDir: TDirectoryEdit;
EProjectName: TEdit;
ProjNameLabel: TLabel;
DEDestDirLabel: TLabel;
PDescription: TPanel;
SGVariables: TStringGrid;
procedure BOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ProjectVariablesFormShow(Sender: TObject);
private
FSChanged: Boolean;
FTemplates: TProjectTemplates;
FVariables : TStrings;
function GetProjectDir: String;
function GetProjectName: String;
procedure SetVariables(const AValue: TStrings);
public
Property Templates : TProjectTemplates Read FTemplates Write FTemplates;
Property ProjectName : String Read GetProjectName;
Property ProjectDir : String Read GetProjectDir;
Property Variables : TStrings Read FVariables Write SetVariables;
Property SettingsChanged: Boolean Read FSChanged Write FSChanged;
end;
var
ProjectVariablesForm: TProjectVariablesForm;
implementation
{$R *.lfm}
resourcestring
SVariable = 'Variable';
SValue = 'Value';
SDescription = 'Description';
SNoAdditionalVars = 'This project has no additional variables.';
//
SNameforProject = '&Name for new project:';
SCreateinDir = 'Create in &directory:';
SThisProject = 'This project contains some additional variables. Please provide values for these variables.';
STitle = 'New project from template';
{ TProjectVariablesForm }
procedure TProjectVariablesForm.ProjectVariablesFormShow(Sender: TObject);
begin
SGVariables.Cells[0,0]:=SVariable;
SGVariables.Cells[1,0]:=SValue;
SGVariables.Cells[2,0]:=SDescription;
end;
procedure TProjectVariablesForm.BOKClick(Sender: TObject);
Var
N,V : String;
I : Integer;
begin
For I:=0 to FVariables.Count-1 do
begin
V:='';
N:='';
FVariables.GetNameValue(I,N,V);
V:=SGVariables.Cells[1,I+1];
FVariables[i]:=N+'='+V;
end;
end;
procedure TProjectVariablesForm.FormCreate(Sender: TObject);
begin
Caption := STitle;
ProjNameLabel.Caption:= SNameforProject;
DEDestDirLabel.Caption:= SCreateinDir;
PDescription.Caption:= SThisProject;
ButtonPanel1.CancelButton.Caption:= SbtnCancel;
ButtonPanel1.OKButton.Caption:= SbtnOK;
end;
procedure TProjectVariablesForm.SetVariables(const AValue: TStrings);
Var
N,V : String;
I : Integer;
begin
FVariables:=AValue;
If (FVariables.Count=0) then
begin
SGVariables.Enabled:=False;
PDescription.Caption:=SNoAdditionalVars;
end
else
begin
SGVariables.RowCount:=FVariables.Count+1;
For I:=1 to FVariables.Count do
begin
V:='';
N:='';
FVariables.GetNameValue(I-1,N,V);
SGVariables.Cells[0,I]:=N;
SGVariables.Cells[1,I]:='';
SGVariables.Cells[2,I]:=V;
end;
end;
end;
function TProjectVariablesForm.GetProjectDir: String;
begin
Result:=DEDestDir.Text;
end;
function TProjectVariablesForm.GetProjectName: String;
begin
Result:=EProjectName.Text;
end;
end.
|