📄 fmeditor.pas
字号:
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 + -