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

📄 tcvsrootframeunit.pas

📁 CVS IDE plugin for Borland Delphi this is a good program,i like this kind of practise
💻 PAS
字号:
(* $Id: TCvsrootFrameunit.pas,v 1.2 2002/12/27 16:22:43 turbo Exp $
 *
 * Frame for setting the CVSROOT directory
 *
 * Copyright 2001 by Thomas Bleier
 * For license details see LICENSE.txt
 *)

unit TCvsrootFrameunit;
{$I BORCVS.inc}
interface
//---------------------------------------------------------------------------
uses Classes,
  Controls,
  StdCtrls,
  Forms,
  ExtCtrls,
  TRunCvsFrmunit;
//---------------------------------------------------------------------------
type
  TCvsrootFrame = class(TFrame)
    PCvsRootGrp: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    PRepository: TEdit;
    PServer: TEdit;
    PUser: TEdit;
    PRepositoryBtn: TButton;
    PMethod: TComboBox;
    Label4: TLabel;
    PSelUsed: TRadioButton;
    PUsed: TComboBox;
    PSelCustom: TRadioButton;
    PSelSpecify: TRadioButton;
    PCustom: TEdit;
    procedure PRepositoryBtnClick(Sender: TObject);
    procedure PMethodChanged(Sender: TObject);
    procedure CvsrootChanged(Sender: TObject);
    procedure SelChanged(Sender: TObject);
  private // Anwender-Deklarationen
  protected
    function GetCvsrootString: string;
    function GetSelNr: integer;
  public // Anwender-Deklarationen
    procedure ApplyParameters(runcvs: TRunCvsFrm);
    function IsValid: boolean;
    procedure LoadSettings; virtual;
    procedure SaveSettings; virtual;
  end;
//---------------------------------------------------------------------------
var
  CvsrootFrame: TCvsrootFrame;
//---------------------------------------------------------------------------
implementation
{$R *.dfm}
//# include < cassert >
uses
  SettingsStorage,
  FileCtrl,
  SysUtils,
  Utilityunit,
  TPreferencesFrmunit;
//---------------------------------------------------------------------------

procedure TCvsrootFrame.PRepositoryBtnClick(Sender: TObject);
var
  dir: string;
begin
  dir := PRepository.Text;
  if (SelectDirectory('Select local Repository', '', dir)) then
  begin
    PRepository.Text := dir;
  end;
end;
//---------------------------------------------------------------------------

function TCvsrootFrame.GetSelNr: integer;
begin
  result := -1;
  if PSelSpecify.Checked then
    result := 0
  else
    if PSelCustom.Checked then
    result := 1
  else
    if PSelUsed.Checked then
    result := 2;

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

procedure TCvsrootFrame.SelChanged(Sender: TObject);
var
  fspec: boolean;
  fcust: boolean;
  fused: boolean;
begin
  fspec := PSelSpecify.Checked;
  fcust := PSelCustom.Checked;
  fused := PSelUsed.Checked;
  PMethod.Enabled := fspec;
  PCustom.Enabled := fcust;
  PUsed.Enabled := fused;
  if (not fspec) then
  begin
    PMethod.ItemIndex := -1;
    PServer.Text := '';
    PUser.Text := '';
    PRepository.Text := '';
  end
  else
  begin
    PMethodChanged(self);
  end;
  if (not fused) then
  begin
    PUsed.ItemIndex := -1;
  end;
end;
//---------------------------------------------------------------------------

procedure TCvsrootFrame.PMethodChanged(Sender: TObject);
begin
  if (PSelSpecify.Checked) then
  begin
    case PMethod.ItemIndex of
      0:
        begin
          PServer.Enabled := false;
          PUser.Enabled := false;
          PRepository.Enabled := true;
          PRepositoryBtn.Enabled := true;
        end;
      1:
        begin
          PServer.Enabled := true;
          PUser.Enabled := true;
          PRepository.Enabled := true;
          PRepositoryBtn.Enabled := false;
        end;
      2:
        begin
          PServer.Enabled := true;
          PUser.Enabled := true;
          PRepository.Enabled := true;
          PRepositoryBtn.Enabled := false;
        end;
      3:
        begin
          PServer.Enabled := true;
          PUser.Enabled := false;
          PRepository.Enabled := true;
          PRepositoryBtn.Enabled := false;
        end;
      4:
        begin
          PServer.Enabled := true;
          PUser.Enabled := true;
          PRepository.Enabled := true;
          PRepositoryBtn.Enabled := false;
        end;
      -1:
        begin
          PServer.Enabled := false;
          PUser.Enabled := false;
          PRepository.Enabled := false;
          PRepositoryBtn.Enabled := false;
        end;
    else
      assert(false);
    end;
    CvsrootChanged(self);
  end;
end;
//---------------------------------------------------------------------------

procedure TCvsrootFrame.CvsrootChanged(Sender: TObject);
begin
  PCustom.Text := GetCvsrootString;
end;
//---------------------------------------------------------------------------

function TCvsrootFrame.GetCvsrootString: string;
begin
  case GetSelNr of
    0:
      begin
        case PMethod.ItemIndex of
          0:
            result := ':local:' + PRepository.Text;
          1:
            begin
              result := ':pserver:';
              if (PUser.Text <> '') then
                result := result + PUser.Text + '@';
              result := result + PServer.Text + ':' + PRepository.Text;
            end;
          2:
            begin
              result := ':ext:';
              if (PUser.Text <> '') then
                result := result + PUser.Text + '@';
              result := result + PServer.Text + '/' + PRepository.Text;
            end;
          3:
            begin
              result := ':ntserver:';
              result := result + PServer.Text + ':' + PRepository.Text;
            end;
          4:
            begin
              result := ':sspi:';
              if (PUser.Text <> '') then
                result := result + PUser.Text + '@';
              result := result + PServer.Text + ':' + PRepository.Text;
            end;
          -1:
            result := '';

        else
          assert(false);
        end;
      end;
    1:
      result := PCustom.Text;
    2:
      result := PUsed.Text;
  else
    assert(false);
  end;
end;
//---------------------------------------------------------------------------

procedure TCvsrootFrame.ApplyParameters(runcvs: TRunCvsFrm);
begin
  runcvs.GlobalOptions.Add(' -d ' +
    GetOptQuotedString(GetCvsrootString));
end;
//---------------------------------------------------------------------------

function TCvsrootFrame.IsValid: boolean;
begin
  result := true;
  case (GetSelNr) of
    0:
      case (PMethod.ItemIndex) of
        0:
          if (Trim(PRepository.Text) = '') then
            result := false;
        1, 2, 3, 4:
          if (Trim(PServer.Text) = '') or (Trim(PRepository.Text) = '') then
            result := false;
        -1:
          result := false;
      else
        assert(false);
      end;
    1:
      result := PCustom.Text <> '';
    2:
      result := PUsed.Text <> '';
  else
    assert(false);
  end;
end;
//---------------------------------------------------------------------------

procedure TCvsrootFrame.LoadSettings;
begin
  PMethod.Items.Clear;
  PMethod.Items.Add('Local');
  PMethod.Items.Add('pserver');
  PMethod.Items.Add('ext');
  if (PreferencesFrm.IsNtCvs) then
  begin
    PMethod.Items.Add('ntserver');
    PMethod.Items.Add('sspi');
  end;
  PMethod.ItemIndex := -1;
  try
    BEGIN_LOAD_SETTINGS('CVSROOT');
    LOAD_COMBOLIST_SETTING('CVSROOT', PUsed, '');
    END_LOAD_SETTINGS;
  except
  end;
  if (PUsed.Items.Count > 0) then
  begin
    PSelUsed.Checked := true;
  end;
  SelChanged(self);
  PMethodChanged(self);
  CvsrootChanged(self);
end;
//---------------------------------------------------------------------------

procedure TCvsrootFrame.SaveSettings;
begin
  ADD_COMBO_TEXT_ENTRY_MAX(PUsed, GetCvsrootString, DEFAULT_MRU_ENTRIES);
  BEGIN_SAVE_SETTINGS('CVSROOT');
  SAVE_COMBOLIST_SETTING('CVSROOT', PUsed);
  END_SAVE_SETTINGS;
end;
//---------------------------------------------------------------------------
end.

⌨️ 快捷键说明

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