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

📄 fmeditor.pas

📁 代码变更管理工具。当对程序代码进行变更以后可以用改工具记录变更内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    Exit;
  end;

  for i := 0 to Length(arrDeveloper) - 1  do
  begin
    if AnsiCompareText(arrDeveloper[i].name, cbbDevpName.Text) = 0 then
    begin   // 查出开发者的ID
      aLogRec.devpId := arrDeveloper[i].id;
      Break;
    end;
  end;

  // 获取bug所涉及的分支
  for j := 0 to lstEditBranch.count - 1 do
  begin
    for i := Low(arrBranch) to High(arrBranch) do
    begin
      if arrBranch[i].name = lstEditBranch.Items[j] then
      begin
        aLogRec.branchId := aLogRec.branchId + SPLITER_CHAR +
                 IntToStr(getBranchIdByName(arrBranch[i].name));
        Break;
      end;
    end;
  end;
  aLogRec.branchId := aLogRec.branchId + SPLITER_CHAR;
  case cbbType.ItemIndex of
    0: temptype := '*';
    1: temptype := '+';
    2: temptype := '-';
  else
    temptype := '*';
  end;

  aLogRec.modType   := temptype;
  tempTimeStr       := DateToStr(dtpDate.Date) + ' ' + TimeToStr(dtpDateTime.Time) ;
  aLogRec.lDateTime := StrToDateTime(tempTimeStr);
  aLogRec.notes     := mmoNotes.text;
  aLogRec.devpNotes := mmoDevpNotes.text;
  if isAddOp then
  begin
    if lstEditBranch.Count = 0 then   // 判断是否选择了分支
    begin
      ShowMessage('请选择分支');
      Exit;
    end;
    dataMng.addLogTabData(aLogRec);
  end
  else

  begin
    aLogRec.id := bugID;
    dataMng.editLogTabDat(aLogRec);
  end;
  writeBugInfo(); // 把当前bug信息写人文件中
  Close();
end;
//------------------------------------------------------------------------------

procedure TfEditor.FormCreate(Sender: TObject);
var
  tempFileHandle: Integer;
begin
  tempFileHandle := 0;
  currDevpName   := FmChgMngMain.getCurrDevpName();
  logFilePath    := ExtractFilePath(application.ExeName) + 'LastLog.txt';
  if not FileExists(logFilePath) then
  begin
    try
      tempFileHandle := FileCreate(logFilePath);
    Finally
      FileClose(tempFileHandle);
    end;
  end;

end;
//------------------------------------------------------------------------------

procedure TfEditor.btnAddBranchClick(Sender: TObject);
var
  i : Integer;
  arrSelected : arrSelectBranch;
begin
  arrSelected := getLstBoxSelectIndex(lstNotEditBranch);
  for i := High(arrSelected) downto Low(arrSelected) do
  begin
    if arrSelected[i] <> -1 then
    begin
      lstEditBranch.Items.Add(lstNotEditBranch.Items[arrSelected[i]]);
      lstNotEditBranch.Items.Delete(arrSelected[i]);
    end;
  end;
end;
//------------------------------------------------------------------------------

procedure TfEditor.btnDelBtanchClick(Sender: TObject);
var
  i, indexId     : Integer;
  arrSelected    : arrSelectBranch;
  tempBranchName : string;
begin
  arrSelected := getLstBoxSelectIndex(lstEditBranch);
  for i := High(arrSelected) downto Low(arrSelected) do  // 删除选中的分支
  begin
    if arrSelected[i] <> -1 then
    begin
      tempBranchName := lstEditBranch.Items[arrSelected[i]];
      indexId := getArrBranchIndexByName(tempBranchName);
      if arrBranch[indexId].active > 0 then   // 当删除的分支是有效的才添加到未编辑列表中
      begin
        lstNotEditBranch.Items.Add(lstEditBranch.Items[arrSelected[i]]);
      end;
      lstEditBranch.Items.Delete(arrSelected[i]);
    end; // end  if arrSelected[i] <> -1
  end;
end;
//------------------------------------------------------------------------------

procedure TfEditor.btnLogoutClick(Sender: TObject);
begin
  Close();
end;
//------------------------------------------------------------------------------

function TfEditor.exectue(const aRecLog: PRecLog): Integer;
var
  strList: TStringList;
  i, tempBranchID, startIndex, endIndex: Integer;
  tempDevpName, tempBranchIDStr, tempTimeStr, tempOpStyle: string;
begin
  if aRecLog.id <> -1 then     // 编辑一条已有记录
  begin
    self.Caption := '编辑Bug信息';
    isAddOp      := False;
    bugID                 := aRecLog.id;
    tempDevpName          := getDevpNameById(aRecLog.devpId);
    cbbDevpName.ItemIndex := cbbDevpName.Items.IndexOf(tempDevpName);
    mmoNotes.Text         := aRecLog.notes;
    mmoDevpNotes.Text     := aRecLog.devpNotes;
    tempBranchIDStr       := aRecLog.branchId;
    tempTimeStr           := DatetimeToStr(aRecLog.lDateTime);

    if aRecLog.modType = '+' then  //将操作类型转换成对应项
    begin
      tempOpStyle := '添加';
    end
    else if aRecLog.modType = '*' then
    begin
      tempOpStyle := '修改';
    end
    else
    begin
      tempOpStyle := '删除';
    end;

    startIndex := 2;
    strList    := TStringList.Create();
    for endIndex := 2 to Length(tempBranchIDStr) do
    begin
      if  tempBranchIDStr[endIndex] = SPLITER_CHAR then    //找到字符是';'的坐标
      begin
        strList.Add(Copy( tempBranchIDStr, startIndex, endIndex - startIndex));
        startIndex := endIndex + 1;
      end;
    end;

    for i := 0 to strList.Count - 1 do    // 添加已编辑Bug涉及的分支名
    begin
      tempBranchID := StrToInt(strList[i]);
      lstEditBranch.Items.Add(getBranchNameById(tempBranchID));
    end;

    // 重新填充未编辑的列表,只显示未编辑分支
    lstNotEditBranch.Clear();
    for i := Low(arrBranch) to High(arrBranch)  do
    begin
      if lstEditBranch.Items.Indexof(arrBranch[i].name) < 0 then
      begin
        if arrBranch[i].active > 0 then
        begin
          lstNotEditBranch.items.Add(arrBranch[i].name);
        end;
      end;
    end;

    for i := 1 to Length(tempTimeStr) - 1 do    // 分别显示日期和时间
    begin
      if tempTimeStr[i] = ' ' then
      begin
        dtpDate.DateTime := StrToDateTime(Copy(tempTimeStr, 0, i));
        Break;
      end;
    end;
    dtpDateTime.Time  := StrToTime(Copy(tempTimeStr, i + 1, Length(tempTimeStr) - 1));
    cbbType.ItemIndex := cbbType.Items.Indexof(tempOpStyle);
  end

  else   // 添加一条新记录
  begin
    self.Caption          := '添加Bug信息';
    cbbType.ItemIndex     := 1;
    cbbDevpName.ItemIndex := cbbDevpName.Items.IndexOf(currDevpName);
  end;

  Result := Self.Showmodal();
end;
//------------------------------------------------------------------------------

function TfEditor.getDevpNameById(const aId: Integer): string;
var
  i: Integer;
begin
  for i := Low(arrDeveloper) to High(arrDeveloper) do
  begin
    if aId = arrDeveloper[i].id then
    Begin
      Break;
    end;
  end;
  // Todo
  Result := arrDeveloper[i].name;
end;
//------------------------------------------------------------------------------

function TfEditor.init(const aDataMng: TDataMng): Integer;
var
  i : Integer;
begin
  Result       := -1;
   isAddOp     := True;
  dataMng      := aDataMng;
  arrDeveloper := dataMng.getDevpTabRecord();
  arrBranch    := dataMng.getBranchTabRecord();
  dtpDate.DateTime     := Now();
  dtpDateTime.DateTime := Now(); 

  mmoDevpNotes.clear();
  mmoNotes.Clear();
  cbbDevpName.Clear();
  lstEditBranch.Clear();
  lstNotEditBranch.Clear();

  for i := Low(arrBranch) to High(arrBranch)  do   //获取所有的分支
  begin
    if arrBranch[i].active > 0 then
    begin
      lstNotEditBranch.items.Add(arrBranch[i].name);
    end;
  end;

  for i := Low(arrDeveloper) to High(arrDeveloper) do
  begin
    cbbDevpName.Items.Add(arrDeveloper[i].name);
  end;
end;
//------------------------------------------------------------------------------

end.


⌨️ 快捷键说明

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