⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmconfigpage.pas

📁 East make Tray Icon in delphi
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    ;
  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 + -