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

📄 tcontrollerunit.pas

📁 CVS IDE plugin for Borland Delphi this is a good program,i like this kind of practise
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  PMenuCommitFile := NewMenuItem(PFileMenu, 'Commit...', 'CvsCommitFile',
    MenuCommitFileClick, true);
  PMenuDiffFile := NewMenuItem(PFileMenu, 'Diff...', 'CvsDiff',
    MenuDiffFileClick, true);
  PMenuLogFile := NewMenuItem(PFileMenu, 'Log for...', 'CvsLog',
    MenuLogFileClick, true);
end;
//---------------------------------------------------------------------------

procedure TController.SetMenuState;
var
  Module: IOTAModule;
  Project: IOTAProject;

  FModule,
    FProject: Boolean;
  fInCvs: boolean;

begin

  Project := ToolsApiHelper.GetCurrentProject;
  FProject := assigned(Project);

  Module := ToolsApiHelper.GetCurrentModule;
  fModule := assigned(module);

  fInCvs := FProject and IsProjectInCvs(Project.FileName);

  PMenuNewModule.Enabled := not fInCvs;
  PMenuAddFile.Enabled := fInCvs;

  PProjectGroupMenu.Enabled :=ToolsApiHelper.HasProjectGroup;
  if PProjectGroupMenu.Enabled then
  begin
    PProjectGroupMenu.Caption := 'Project Group <'+
     ChangeFileExt(ExtractFileName(ToolsApiHelper.GetCurrentProjectGroup.FileName), '')
      + '>...';
  end
  else
  begin
    PProjectGroupMenu.Caption := 'Project Group ...';
  end;

  PProjectMenu.Enabled := FProject;
  if FProject then
  begin
    PProjectMenu.Caption := 'Project <' + ChangeFileExt(ExtractFileName(Project.FileName), '') + '>...';
  end
  else
  begin
    PProjectMenu.Caption := 'Project ...';
  end;

  PFileMenu.Enabled := fModule;
  if fModule then
  begin
//    PFileMenu.Caption := 'File <' + ChangeFileExt(ExtractFileName(module.FileName), '') + '> ...';
    PFileMenu.Caption := 'File <' + ExtractFileName(module.FileName) + '> ...';
  end
  else
  begin
    PFileMenu.Caption := 'File  ...';
  end;
end;
//---------------------------------------------------------------------------

procedure TController.MenuDropdown(Sender: TObject);
begin
  SetMenuState;
end;
//---------------------------------------------------------------------------

function TController.IsProjectInCvs(projectfile: string): boolean;
var
  path: string;
begin
  path := ExtractFilePath(projectfile);
  if (path <> '') then
  begin
    result := FileExists(path + 'CVS\Entries');
    exit;
  end
  else
    result := false;
end;
//---------------------------------------------------------------------------

procedure TController.MenuNewModuleClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  NewModuleFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuCheckoutClick(Sender: TObject);
begin
  CheckoutFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuUpdateProjClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  UpdateFrm.WhichFiles := wfmProject;
  UpdateFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuCommitProjClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  CommitFrm.WhichFiles := wfmProject;
  CommitFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuTagBranchProjClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  TagBranchFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuStatusProjClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  StatusFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuCommitProjGroupClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  CommitFrm.WhichFiles := wfmProjectGroup;
  CommitFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuStatusProjGroupClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  StatusFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuTagBranchProjGroupClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  TagBranchFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuUpdateProjGroupClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  UpdateFrm.WhichFiles := wfmProjectGroup;
  UpdateFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuAddFileClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  AddFrm.WhichFiles := wfmCustom;
  AddFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuAddProjClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  AddFrm.WhichFiles := wfmProject;
  AddFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuAddProjGroupClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  AddFrm.WhichFiles := wfmProjectGroup;
  AddFrm.Exec;
end;

//---------------------------------------------------------------------------

procedure TController.MenuRemoveFileClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  RemoveFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuUpdateFileClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  UpdateFrm.WhichFiles := wfmModule;
  UpdateFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuCommitFileClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  CommitFrm.WhichFiles := wfmModule;
  CommitFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuDiffFileClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  DiffFrm.FileNames.Clear;
  ToolsApiHelper.GetCurrentModuleFiles(DiffFrm.FileNames);
  DiffFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuLogFileClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  LogFrm.FileNames.Clear;
  ToolsApiHelper.GetCurrentModuleFiles(LogFrm.FileNames);
  LogFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuCommandClick(Sender: TObject);
begin
  if (PreferencesFrm.AutoSaveAll) then
    ToolsApiHelper.SaveAll;
  CvsCmdFrm.Exec;
end;
//---------------------------------------------------------------------------

procedure TController.MenuPreferencesClick(Sender: TObject);
begin
  PreferencesFrm.ShowModal;
end;
//---------------------------------------------------------------------------

procedure TController.MenuAboutClick(Sender: TObject);
// OK !
var
  frm: TAboutFrm;
begin
  frm := TAboutFrm.Create(nil);
  try
    frm.ShowModal;
  finally
    frm.Free;
  end;
end;
//---------------------------------------------------------------------------

function IsStandAlone: Boolean;
begin
  Result := (BorlandIDEServices = nil);
end;

const
  CompilerDefinedProductRegistryKey = 'Software\BorCVS';

function GetIdeBaseRegistryKey: string;
var
  IServices: IOTAServices;
begin
  if IsStandAlone then
    Result := CompilerDefinedProductRegistryKey
  else
  begin
    Assert(BorlandIDEServices <> nil);
    IServices := (BorlandIDEServices as IOTAServices);
    Assert(IServices <> nil);
    Result := IServices.GetBaseRegistryKey;
  end;

  if Length(Result) > 0 then
  begin
    // Windows 2000 is allergic to a leading backslash
    // in the registry key - NT4, for instance, is not.
    if Result[1] = '\' then
      Delete(Result, 1, 1);

    Assert(Result[Length(Result)] <> '\');
  end;
end;


initialization
//---------------------------------------------------------------------------
  begin
    SAVE_SETTINGS_BASEKEY := GetIdeBaseRegistryKey + '\BorCVS';
    RegistrySettingsRoot := HKEY_CURRENT_USER;
  end;
//---------------------------------------------------------------------------

end.

⌨️ 快捷键说明

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