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

📄 tpreferencesfrmunit.pas

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

unit TPreferencesFrmunit;
{$I BORCVS.inc}
interface
//---------------------------------------------------------------------------
uses Classes,
  Controls,
  StdCtrls,
  Forms,
  ExtCtrls,
  Dialogs,
  TRunCvsFrmunit;
  //---------------------------------------------------------------------------
//class TRunCvsFrm;
type
  TPreferencesFrm = class(TForm)
    PCvsBinaryGrp: TGroupBox;
    PBinary: TEdit;
    PGlobalOptionsGrp: TGroupBox;
    PIgnoreCvsrc: TCheckBox;
    PNoChange: TCheckBox;
    PBinaryBtn: TButton;
    POkBtn: TButton;
    PCancelBtn: TButton;
    PPruneDir: TCheckBox;
    PBinaryDlg: TOpenDialog;
    GroupBox1: TGroupBox;
    PAutoSaveAll: TCheckBox;
    PNtCvs: TCheckBox;
    PLogFile: TEdit;
    PLogFileBtn: TButton;
    Label1: TLabel;
    PLogFileDlg: TSaveDialog;
    procedure POkBtnClick(Sender: TObject);
    procedure PBinaryBtnClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure PLogFileBtnClick(Sender: TObject);
  private
    function GetAutoSaveAll: boolean;
    function GetDemoMode: boolean;
  protected
    procedure LoadSettings;
  public // Anwender-Deklarationen
    constructor create(Owner: TComponent); override;
    destructor destroy; override;
    procedure ApplyPreferences(runcvsfrm: TRunCvsFrm);
    function IsNtCvs: boolean;
    property AutoSaveAll: boolean read GetAutoSaveAll;
    property DemoMode: boolean read GetDemoMode;
    procedure AddToLog(const s: string);
  end;
//---------------------------------------------------------------------------
var
  PreferencesFrm: TPreferencesFrm;
//---------------------------------------------------------------------------

implementation

uses
  SysUtils,
  SettingsStorage;

//---------------------------------------------------------------------------
{$R *.dfm}
//TPreferencesFrm * PreferencesFrm := NULL;
// autotectect if CVS is NT CVS
//---------------------------------------------------------------------------

constructor TPreferencesFrm.create(Owner: TComponent);
begin
  inherited create(owner);
  LoadSettings;
end;
//---------------------------------------------------------------------------

destructor TPreferencesFrm.destroy;
begin
  inherited Destroy;
end;
//---------------------------------------------------------------------------

procedure TPreferencesFrm.POkBtnClick(Sender: TObject);
begin
  BEGIN_SAVE_SETTINGS('Preferences');
  SAVE_STRING_SETTING('CvsBinary', PBinary.Text);
  SAVE_BOOL_SETTING('NoChange', PNoChange.Checked);
  SAVE_BOOL_SETTING('IgnoreCvsrc', PIgnoreCvsrc.Checked);
  SAVE_BOOL_SETTING('PruneDir', PPruneDir.Checked);
  SAVE_BOOL_SETTING('AutoSaveAll', PAutoSaveAll.Checked);
  SAVE_BOOL_SETTING('NtCvs', PNtCvs.Checked);
  SAVE_STRING_SETTING('LogFile', PLogFile.Text);
  END_SAVE_SETTINGS;
  ModalResult := mrOk;
end;
//---------------------------------------------------------------------------

procedure TPreferencesFrm.PBinaryBtnClick(Sender: TObject);
begin
  PBinaryDlg.FileName := PBinary.Text;
  PBinaryDlg.InitialDir := ExtractFilePath(PBinary.Text);
  if (PBinaryDlg.Execute) then
  begin
    PBinary.Text := PBinaryDlg.FileName;
  end
end;
//---------------------------------------------------------------------------

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

procedure TPreferencesFrm.PLogFileBtnClick(Sender: TObject);
begin
  PLogFileDlg.FileName := PLogFile.Text;
  PLogFileDlg.InitialDir := ExtractFilePath(PLogFile.Text);
  if (PLogFileDlg.Execute) then
  begin
    PLogFile.Text := PLogFileDlg.FileName;
  end
end;

procedure TPreferencesFrm.ApplyPreferences(runcvsfrm: TRunCvsFrm);
var
  cmd: string;
begin
  if (PNoChange.Checked) then
    runcvsfrm.GlobalOptions.Add(' - n');
  if (PIgnoreCvsrc.Checked) then
    runcvsfrm.GlobalOptions.Add(' - f');
  if (PPruneDir.Checked) then
  begin
    cmd := runcvsfrm.Command;
    if (cmd = CVSCMD_CHECKOUT) or (cmd = CVSCMD_UPDATE) then
    begin
      runcvsfrm.CommandOptions.Add(' - P');
    end;
  end;
  runcvsfrm.CvsBinary := PBinary.Text;
end;
//---------------------------------------------------------------------------

function TPreferencesFrm.GetAutoSaveAll: boolean;
begin
  result := PAutoSaveAll.Checked;
end;
//---------------------------------------------------------------------------

function TPreferencesFrm.GetDemoMode: boolean;
begin
  ;
  result := PNoChange.Checked;
end;
//---------------------------------------------------------------------------

function TPreferencesFrm.IsNtCvs: boolean;
begin
  result := PNtCvs.Checked;
end;
//---------------------------------------------------------------------------

procedure TPreferencesFrm.LoadSettings;
begin
  try
    BEGIN_LOAD_SETTINGS('Preferences');
    PBinary.Text := LOAD_STRING_SETTING('CvsBinary', 'cvs.exe');
    PNoChange.Checked := LOAD_BOOL_SETTING('NoChange', false);
    PIgnoreCvsrc.Checked := LOAD_BOOL_SETTING('IgnoreCvsrc', false);
    PPruneDir.Checked := LOAD_BOOL_SETTING('PruneDir', true);
    PAutoSaveAll.Checked := LOAD_BOOL_SETTING('AutoSaveAll', true);
    PNtCvs.Checked := LOAD_BOOL_SETTING('NtCvs', false);
    PLogFile.Text := LOAD_STRING_SETTING('LogFile', '');
    END_LOAD_SETTINGS;
  except
  end;
end;
//---------------------------------------------------------------------------

procedure TPreferencesFrm.FormShow(Sender: TObject);
begin
  LoadSettings;
end;

procedure TPreferencesFrm.AddToLog(const s: string);
var
  Log: TFileStream;
begin
  if PLogFile.Text <> '' then
  begin
    Log := TFileStream.create(PLogFile.Text, fmCreate);
    Log.Seek(0, soFromEnd);
    Log.Write(s[1], length(s));
    Log.Free;
  end;
end;

end.

⌨️ 快捷键说明

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