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

📄 xpdunitsetup.pas

📁 For Delphi的单元测试工具DUnit的源代码
💻 PAS
📖 第 1 页 / 共 2 页
字号:

  MacroListClick(nil);

  // Select a parameter

  if ParameterList.ItemIndex < 0 then
    ParameterList.ItemIndex := 0;

  ParameterListClick(nil);

  // Reset transaction state
  FSetup.Rollback;
end;

procedure TXPDUnitSetupForm.ApplyActionExecute(Sender: TObject);
begin
  // Copy current buffered values to persistent store.
  FSetup.Commit;
end;

procedure TXPDUnitSetupForm.CancelActionExecute(Sender: TObject);
begin
  // Reload form from persistent store.
  FSetup.Rollback;
  // Refresh parameter values
  LoadDisplay;
end;

procedure TXPDUnitSetupForm.CloseActionExecute(Sender: TObject);
begin
  // Close form
  Close;
end;

procedure TXPDUnitSetupForm.ParameterListClick(Sender: TObject);
const
  TemplateColours: array[boolean] of TColor = (clWindow, clBtnFace);

var
  FixedParameter: boolean;
  CurrentParameter: TXPDUnitParameter;

begin
  // Refresh display for selected parameter

  // ParameterTemplate is not editable for fixed parameters
  FixedParameter := TXPDUnitParameter(ParameterList.ItemIndex)
    < System.Low(TXPDUnitVarParameter);
  ParameterTemplate.ReadOnly := FixedParameter;
  ParameterTemplate.Color := TemplateColours[FixedParameter];
  InsertMacroAction.Enabled := not FixedParameter;
  ParameterTemplate.TabStop := not FixedParameter;

  if FixedParameter then
    TemplateLabel.Caption := SysUtils.Format('%s &template',
    [ParameterList.Items[ParameterList.ItemIndex]])
  else
    TemplateLabel.Caption := SysUtils.Format('Edit %s &template...',
    [ParameterList.Items[ParameterList.ItemIndex]]);

  ParameterTemplate.Text := FParameters.Templates(
    TXPDUnitParameter(ParameterList.ItemIndex));
  ParameterDescription.Lines.Text := FParameters.Descriptions(
    TXPDUnitParameter(ParameterList.ItemIndex));

  // Evaluate hint for currently selected parameter
  if ParameterList.ItemIndex >= 0 then
  begin
    CurrentParameter := TXPDUnitParameter(ParameterList.ItemIndex);
    FParameters.ClearValues;
    FParameters.EvaluateValues;
    ParameterList.Hint := SysUtils.Format('Current %s = "%s"',
      [FParameters.Identifiers(CurrentParameter),
      FParameters.Values[CurrentParameter]])
  end
  else
    ParameterList.Hint := '';

end;

procedure TXPDUnitSetupForm.ApplyActionUpdate(Sender: TObject);
begin
  // Apply enabled when there are unsaved changes
  ApplyAction.Enabled := FSetup.InTransaction;
end;

procedure TXPDUnitSetupForm.CancelActionUpdate(Sender: TObject);
begin
  // Cancel enabled when there are unsaved changes
  CancelAction.Enabled := FSetup.InTransaction;
end;

procedure TXPDUnitSetupForm.AddCurrentToTestModuleUsesClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iAddCurrentToTestModule,
    AddCurrentToTestModuleUses.Checked);
end;

procedure TXPDUnitSetupForm.AddCurrentToTestProjectUsesClick(
  Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iAddCurrentToProject,
    AddCurrentToTestProjectUses.Checked);
end;

procedure TXPDUnitSetupForm.AddToProjectGroupClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iAddProjectToGroup,
    AddToProjectGroup.Checked);
end;

procedure TXPDUnitSetupForm.ModuleAddPublishedMethodsClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iModuleAddPublishedMethods,
    ModuleAddPublishedMethods.Checked);
end;

procedure TXPDUnitSetupForm.ModuleAddPublicMethodsClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iModuleAddPublicMethods,
    ModuleAddPublicMethods.Checked);
end;

procedure TXPDUnitSetupForm.ModuleAddProtectedMethodsClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iModuleAddProtectedMethods,
    ModuleAddProtectedMethods.Checked);
end;

procedure TXPDUnitSetupForm.ClassAddPublishedMethodsClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iClassAddPublishedMethods,
    ClassAddPublishedMethods.Checked);
end;

procedure TXPDUnitSetupForm.ClassAddPublicMethodsClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iClassAddPublicMethods,
    ClassAddPublicMethods.Checked);
end;

procedure TXPDUnitSetupForm.ClassAddProtectedMethodsClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iClassAddProtectedMethods,
    ClassAddProtectedMethods.Checked);
end;

procedure TXPDUnitSetupForm.ClassAddPrivateMethodsClick(Sender: TObject);
begin
  FSetup.WriteBool(sBehaviours, iClassAddPrivateMethods,
    ClassAddPrivateMethods.Checked);
end;

procedure TXPDUnitSetupForm.InsertMacroActionExecute(Sender: TObject);
begin
  // Focus ParameterTemplate edit
  ActiveControl := ParameterTemplate;
  // Insert text for selected macro into current selection or cursor position
  // in ParameterTemplate control.
  ParameterTemplate.SelStart := FTemplateSelStart;
  ParameterTemplate.SelLength := FTemplateSelLength;
  // Setup for TemplateChange event on setting ParameterTemplate.SelText
  FParameterTemplateEdited := true;
  ParameterTemplate.SelText := FMacros.Text(TXPDUnitMacro(MacroList.ItemIndex));

  // If the selected macro is a macro function, then move edit cursor to
  // between function parentheses
  if TXPDUnitMacro(MacroList.ItemIndex) >= System.Low(TXPDUnitMethodMacro) then
    ParameterTemplate.SelStart := ParameterTemplate.SelStart - 1;

end;

procedure TXPDUnitSetupForm.ParameterTemplateKeyPress(Sender: TObject;
  var Key: Char);
begin
  FParameterTemplateEdited := not ParameterTemplate.ReadOnly;
end;

procedure TXPDUnitSetupForm.ParameterTemplateChange(Sender: TObject);
begin

  if FParameterTemplateEdited then
  begin
    // Buffer current trimmed ParameterTemplate content
    FSetup.WriteString('Templates',
      ParameterList.Items[ParameterList.ItemIndex],
      SysUtils.Trim(ParameterTemplate.Text));
    // Clear flag for next TemplateKeyPress() event
    FParameterTemplateEdited := false;
  end;

end;

procedure TXPDUnitSetupForm.ParameterTemplateExit(Sender: TObject);
begin
  // Cache current cursor position and selection for potential macro insertion.
  FTemplateSelStart := ParameterTemplate.SelStart;
  FTemplateSelLength := ParameterTemplate.SelLength;
end;

procedure TXPDUnitSetupForm.RestoreDefaultsActionExecute(Sender: TObject);
begin
  // Clear current settings
  FSetup.RestoreDefaults;
  // Load defaults
  LoadDisplay;
end;

procedure TXPDUnitSetupForm.MacroListClick(Sender: TObject);
begin
  // Set macro description
  MacroDescription.Lines.Text := FMacros.Descriptions(
    TXPDUnitMacro(MacroList.ItemIndex));
end;

////////////////////////////////////////////////////////////////////////////
//          IXPDUnitBehaviours implementation
////////////////////////////////////////////////////////////////////////////

constructor TBehaviours.Create;
begin
  inherited Create;
  FSetup := TIniFile.Create(XPDUnitSetupFile);
end;

destructor TBehaviours.Destroy;
begin
  FSetup.Free;
  inherited;
end;

function TBehaviours.AddProjectToGroup: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iAddProjectToGroup,
    dAddProjectToGroup);
end;

function TBehaviours.AddCurrentToProject: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iAddCurrentToProject,
    dAddCurrentToProject);
end;

function TBehaviours.AddCurrentToTestModule: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iAddCurrentToTestModule,
    dAddCurrentToTestModule);
end;

function TBehaviours.ModuleAddCurrentPublishedMethods: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iModuleAddPublishedMethods,
    dModuleAddPublishedMethods);
end;

function TBehaviours.ModuleAddCurrentPublicMethods: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iModuleAddPublicMethods,
    dModuleAddPublicMethods);
end;

function TBehaviours.ModuleAddCurrentProtectedMethods: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iModuleAddProtectedMethods,
    dModuleAddProtectedMethods);
end;

function TBehaviours.ClassAddCurrentPublishedMethods: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iClassAddPublishedMethods,
    dClassAddPublishedMethods);
end;

function TBehaviours.ClassAddCurrentPublicMethods: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iClassAddPublicMethods,
    dClassAddPublicMethods);
end;

function TBehaviours.ClassAddCurrentProtectedMethods: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iClassAddProtectedMethods,
    dClassAddProtectedMethods);
end;

function TBehaviours.ClassAddCurrentPrivateMethods: boolean;
begin
  Result := FSetup.ReadBool(sBehaviours, iClassAddPrivateMethods,
    dClassAddPrivateMethods);
end;

initialization
finalization

  LForm.Free;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -