📄 frmconfigpage.pas
字号:
;
end;
PackageInstaller.UpdatePages;
end;
procedure TFrameConfigPage.CheckBoxCompileJclDcpClick(Sender: TObject);
begin
if FInitializing > 0 then
Exit;
if Sender = CheckBoxCompileJclDcp then
Installer.Data.CompileJclDcp := CheckBoxCompileJclDcp.Checked
else if Sender = CheckBoxVerbose then
Installer.Data.Verbose := CheckBoxVerbose.Checked
else if Sender = CheckBoxIgnoreMakeErrors then
Installer.Data.IgnoreMakeErrors := CheckBoxIgnoreMakeErrors.Checked
;
end;
procedure TFrameConfigPage.GetJVCLConfig(const Id: string; CheckBox: TCheckBox);
var
i, e, Count: Integer;
begin
CheckBox.AllowGrayed := False;
if SelTargetConfig = nil then
begin
// for all
e := 0;
Count := 0;
for i := 0 to Installer.SelTargetCount - 1 do
if Installer.SelTargets[i].InstallJVCL then
begin
Inc(Count);
if Installer.SelTargets[i].JVCLConfig.Enabled[Id] then
Inc(e);
end;
if e = 0 then
CheckBox.Checked := False
else if e = Count then
CheckBox.Checked := True
else
begin
CheckBox.AllowGrayed := True;
CheckBox.State := cbGrayed;
end;
end
else
CheckBox.Checked := SelTargetConfig.JVCLConfig.Enabled[Id];
end;
procedure TFrameConfigPage.SetJVCLConfig(const Id: string; CheckBox: TCheckBox);
var
i: Integer;
begin
if SelTargetConfig = nil then
begin
// for all
for i := 0 to Installer.SelTargetCount - 1 do
begin
if Installer.SelTargets[i].InstallJVCL and (CheckBox.State <> cbGrayed) then
begin
Installer.SelTargets[i].JVCLConfig.Enabled[Id] := CheckBox.Checked;
CheckBox.AllowGrayed := False;
end;
end;
end
else
SelTargetConfig.JVCLConfig.Enabled[Id] := CheckBox.Checked;
end;
procedure TFrameConfigPage.UpdateJvclIncSettings;
begin
GetJVCLConfig('JVCLThemesEnabled', CheckBoxXPTheming);
GetJVCLConfig('JVCL_REGISTER_GLOBAL_DESIGNEDITORS', CheckBoxRegisterGlobalDesignEditors);
GetJVCLConfig('USE_DXGETTEXT', CheckBoxDxgettextSupport);
GetJVCLConfig('USE_JV_GIF', CheckBoxRegisterJvGif);
GetJVCLConfig('USEJVCL', CheckBoxUseJVCL);
GetJVCLConfig('UNITVERSIONING', CheckBoxUnitVersioning);
end;
procedure TFrameConfigPage.CheckBoxXPThemingClick(Sender: TObject);
var
i: Integer;
begin
if FInitializing > 0 then
Exit;
if (Sender = CheckBoxXPTheming) and (CheckBoxXPTheming.Tag = 0) then
begin
CheckBoxXPTheming.Tag := 1;
// Is a Delphi/BCB version below 7 installed
for i := 0 to Installer.SelTargetCount - 1 do
begin
if Installer.SelTargets[i].InstallJVCL then
begin
if Installer.SelTargets[i].Target.Version < 7 then
begin
// give the user a hint to the readme.htm
if FileExists(Installer.Data.JVCLDir + PathDelim + SReadmeHTM) then
begin
if MessageDlg(RsReadReadmeForXPThemingInfo, mtInformation,
[mbYes, mbNo], 0) = mrYes then
if not OpenAtAnchor(Installer.Data.JVCLDir + PathDelim + SReadmeHTM, 'Theming') then
MessageDlg(RsErrorOpeningReadmeHTM, mtError, [mbOk], 0);
end;
Break;
end;
end;
end;
end;
try
SetJVCLConfig('JVCLThemesEnabled', CheckBoxXPTheming);
SetJVCLConfig('JVCL_REGISTER_GLOBAL_DESIGNEDITORS', CheckBoxRegisterGlobalDesignEditors);
SetJVCLConfig('USE_DXGETTEXT', CheckBoxDxgettextSupport);
SetJVCLConfig('USE_JV_GIF', CheckBoxRegisterJvGif);
SetJVCLConfig('USEJVCL', CheckBoxUseJVCL);
SetJVCLConfig('UNITVERSIONING', CheckBoxUnitVersioning);
except
on E: Exception do
MessageDlg(RsJVCLConfigurationError, mtError, [mbOk], 0);
end;
end;
procedure TFrameConfigPage.ComboBoxTargetIDEChange(Sender: TObject);
var
TargetConfig: TTargetConfig;
ItemIndex: Integer;
begin
Inc(FInitializing);
try
ItemIndex := ComboBoxTargetIDE.ItemIndex;
if ItemIndex <= 0 then
begin
// for all
CheckBoxDeveloperInstall.State := TCheckBoxState(Installer.Data.DeveloperInstall);
CheckBoxCleanPalettes.State := TCheckBoxState(Installer.Data.CleanPalettes);
CheckBoxBuild.State := TCheckBoxState(Installer.Data.Build);
case TCheckBoxState(Installer.Data.CompileOnly) of
cbUnchecked:
CheckBoxIDERegister.State := cbChecked; // invert
cbChecked:
CheckBoxIDERegister.State := cbUnchecked; // invert
else
CheckBoxIDERegister.State := cbGrayed;
end;
CheckBoxGenerateMapFiles.State := TCheckBoxState(Installer.Data.GenerateMapFiles);
BtnEditJvclInc.Caption := RsEditJvclIncAll;
CheckBoxDebugUnits.State := TCheckBoxState(Installer.Data.DebugUnits);
end
else
begin
// for selected
TargetConfig := SelTargetConfig;
BtnEditJvclInc.Caption := Format(RsEditJvclInc, [LowerCase(TargetTypes[TargetConfig.Target.IsBCB]), TargetConfig.Target.Version]);
CheckBoxDeveloperInstall.Checked := TargetConfig.DeveloperInstall;
CheckBoxDebugUnits.Checked := TargetConfig.DebugUnits;
CheckBoxCleanPalettes.Checked := TargetConfig.CleanPalettes;
CheckBoxBuild.Checked := TargetConfig.Build;
CheckBoxIDERegister.Checked := not TargetConfig.CompileOnly;
CheckBoxGenerateMapFiles.Checked := TargetConfig.GenerateMapFiles;
FrameDirEditBrowseBPL.EditDirectory.Text := TargetConfig.BplDir;
FrameDirEditBrowseDCP.EditDirectory.Text := TargetConfig.DcpDir;
if TargetConfig.Target.IsBCB then
FrameDirEditBrowseHPP.EditDirectory.Text := TargetConfig.HppDir;
end;
CheckBoxCleanPalettes.Enabled := CheckBoxIDERegister.Checked;
CheckBoxDebugUnits.Enabled := not CheckBoxDeveloperInstall.Checked;
FrameDirEditBrowseBPL.Visible := ItemIndex > 0;
FrameDirEditBrowseDCP.Visible := ItemIndex > 0;
FrameDirEditBrowseHPP.Visible := (ItemIndex > 0) and SelTargetConfig.Target.IsBCB;
LblBCBGuide.Visible := FrameDirEditBrowseHPP.Visible;
UpdateJvclIncSettings;
finally
Dec(FInitializing);
end;
end;
procedure TFrameConfigPage.ComboBoxTargetIDEDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
i: Integer;
begin
with TComboBox(Control), TComboBox(Control).Canvas do
begin
FillRect(Rect);
if Index > 0 then
begin
ImageListTargets.Draw(TComboBox(Control).Canvas, Rect.Left + 1, Rect.Top, Index - 1);
Inc(Rect.Left, ImageListTargets.Width + 3);
end
else
Inc(Rect.Left, 3);
TextRect(Rect, Rect.Left, Rect.Top + 1, Items[Index]);
if Index = 0 then
begin
Inc(Rect.Left, TextWidth(Items[Index]) + 2);
for i := 0 to ImageListTargets.Count - 1 do
begin
ImageListTargets.Draw(TComboBox(Control).Canvas, Rect.Left + 1, Rect.Top, i);
Inc(Rect.Left, ImageListTargets.Width + 3);
end;
end;
end;
end;
procedure TFrameConfigPage.BtnEditJvclIncClick(Sender: TObject);
begin
if SelTargetConfig = nil then
begin
MessageDlg(RsEditJvclIncAllError, mtError, [mbOk], 0);
Exit;
end;
if FormJvclIncConfig.imgProjectJEDI.Picture.Graphic = nil then
FormJvclIncConfig.imgProjectJEDI.Picture.Assign(FormMain.ImageLogo.Picture);
FormJvclIncConfig.Config.Assign(SelTargetConfig.JVCLConfig);
if FormJvclIncConfig.Execute(SelTargetConfig.Target.Name + ' ' + SelTargetConfig.Target.VersionStr) then
begin
if FormJvclIncConfig.Config.Modified then
begin
SelTargetConfig.JVCLConfig.Assign(FormJvclIncConfig.Config);
SelTargetConfig.JVCLConfig.Modified := True;
end;
end;
UpdateJvclIncSettings;
end;
procedure TFrameConfigPage.LblDxgettextHomepageClick(Sender: TObject);
begin
Installer.DoHomepageClick(Sender);
end;
procedure TFrameConfigPage.LblBCBGuideClick(Sender: TObject);
var
Filename: string;
begin
Filename := Installer.Data.JVCLDir + '\' + SInstallHTM;
if not OpenAtAnchor(Filename, SBCBGuideAnchor) then
MessageDlg(Format(RsCannotOpen, [Filename]), mtError, [mbOk], 0);
end;
procedure TFrameConfigPage.FrameDirEditBrowseHPPBtnJCLDirBrowseClick(
Sender: TObject);
begin
FrameDirEditBrowseHPP.BtnDirBrowseClick(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -