📄 tcvsbasefrmunit.pas
字号:
(* $Id: TCvsBaseFrmunit.pas,v 1.6 2002/12/30 22:34:36 turbo Exp $
*
* Abstract base class for all CVS command forms of this project
* provides some common used features
*
* Copyright 2001 by Thomas Bleier
* For license details see LICENSE.txt
*)
unit TCvsBaseFrmunit;
{$I BORCVS.inc}
interface
//---------------------------------------------------------------------------
uses
Classes,
Controls,
StdCtrls,
Forms,
TRunCvsFrmUnit;
//---------------------------------------------------------------------------
type
TCvsBaseFrm = class(TForm)
POkBtn: TButton;
PCancelBtn: TButton;
private // Anwender-Deklarationen
protected
procedure GetDirectories(Dirs: TStrings); virtual; abstract;
procedure ApplyParameters(runcvs: TRunCvsFrm; InDirectory: string = ''); virtual; abstract;
procedure ProcessResult(output: TStrings; runcvs: TRunCvsFrm); virtual;
procedure CleanUp; virtual;
procedure DebugInfo(const s: string); virtual;
public // Anwender-Deklarationen
constructor create(Owner: TComponent); override;
procedure Exec; virtual;
end;
//---------------------------------------------------------------------------
implementation
uses
Sysutils,
TResultFrmunit,
PELDebugit;
{$R *.dfm}
//---------------------------------------------------------------------------
constructor TCvsBaseFrm.create(Owner: TComponent);
begin
inherited create(owner);
end;
//---------------------------------------------------------------------------
procedure TCvsBaseFrm.Exec;
var
ResultFrm: TResultFrm;
runcvs: TRunCvsFrm;
Directories: TStringList;
i: integer;
begin
DebugInfo('Exec Begin');
if (ShowModal = mrOk) then
begin
ResultFrm := TResultFrm.create(self);
try
ResultFrm.ShowProcessRunning;
runcvs := TRunCvsFrm.create(self);
try
Directories := TStringList.Create;
DebugInfo('Calling GetDirectories');
GetDirectories(Directories);
DebugInfo(format('GetDirectories returned %d', [Directories.count]));
if Directories.count = 0 then
begin
ApplyParameters(runcvs, '');
runcvs.Run(ResultFrm.PLogEdit);
end
else
begin
for i := 0 to Directories.count - 1 do
begin
runcvs.clear;
ApplyParameters(runcvs, Directories[i]);
runcvs.WorkingDirectory := Directories[i];
runcvs.Run(ResultFrm.PLogEdit);
end;
end;
try
ResultFrm.ShowFinished;
finally
ProcessResult(ResultFrm.PLogEdit.Lines, runcvs);
CleanUp;
end;
finally
runcvs.Free;
end;
finally
ResultFrm.Free;
end;
end;
end;
//---------------------------------------------------------------------------
procedure TCvsBaseFrm.ProcessResult(output: TStrings; runcvs: TRunCvsFrm);
begin
// do nothing here in the base class
end;
//---------------------------------------------------------------------------
procedure TCvsBaseFrm.CleanUp;
begin
// do nothing here in the base class
end;
//---------------------------------------------------------------------------
procedure TCvsBaseFrm.DebugInfo(const s: string);
begin
{$IFOPT D+}
DebugStr('in ' + self.ClassName + ' :' + s);
{$ENDIF D+}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -