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 137 138 139 140 141 142 143 144
|
unit frmTemplateVariables;
{$mode objfpc}{$H+}
interface
uses
Classes,
// LCL
Controls, Forms, ExtCtrls, Grids, StdCtrls, EditBtn, ButtonPanel,
// ProjectTemplates
ProjectTemplates, ptstrconst;
type
{ TProjectVariablesForm }
TProjectVariablesForm = class(TForm)
ButtonPanel1: TButtonPanel;
DEDestDir: TDirectoryEdit;
EProjectName: TEdit;
ProjNameLabel: TLabel;
DEDestDirLabel: TLabel;
PDescription: TPanel;
SGVariables: TStringGrid;
procedure BOKClick(Sender: TObject);
procedure EssentialDataChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ProjectVariablesFormShow(Sender: TObject);
procedure SGVariablesSelectEditor(Sender: TObject; aCol, aRow: Integer;
var Editor: TWinControl);
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}
{ 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.SGVariablesSelectEditor(Sender: TObject; aCol,
aRow: Integer; var Editor: TWinControl);
begin
if aCol<>1 then
Editor:=nil;
end;
procedure TProjectVariablesForm.BOKClick(Sender: TObject);
Var
N,V : String;
I : Integer;
begin
For I:=0 to FVariables.Count-1 do
begin
FVariables.GetNameValue(I,N,V);
V:=SGVariables.Cells[1,I+1];
FVariables[i]:=N+'='+V;
end;
end;
procedure TProjectVariablesForm.EssentialDataChange(Sender: TObject);
begin
ButtonPanel1.OKButton.Enabled:=(EProjectName.Text<>'') and (DEDestDir.Text<>'');
end;
procedure TProjectVariablesForm.FormCreate(Sender: TObject);
begin
Caption := SNewFromTemplate;
ProjNameLabel.Caption:= SNameforProject;
DEDestDirLabel.Caption:= SCreateinDir;
PDescription.Caption:= SThisProject;
EssentialDataChange(Nil);
end;
procedure TProjectVariablesForm.SetVariables(const AValue: TStrings);
Var
N,V : String;
I,J : 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
FVariables.GetNameValue(I-1,N,V);
SGVariables.Cells[0,I]:=N;
J:=Pos('|',V);
if J>0 then
begin
SGVariables.Cells[1,I]:=copy(V,J+1,Length(V));
SGVariables.Cells[2,I]:=copy(V,1,J-1);
end
else
begin
SGVariables.Cells[1,I]:='';
SGVariables.Cells[2,I]:=V;
end;
end;
end;
end;
function TProjectVariablesForm.GetProjectDir: String;
begin
Result:=DEDestDir.Text;
end;
function TProjectVariablesForm.GetProjectName: String;
begin
Result:=EProjectName.Text;
end;
end.
|