📄 tcvscmdfrmunit.pas
字号:
(* $Id: TCvsCmdFrmunit.pas,v 1.6 2003/01/05 20:30:43 turbo Exp $
*
* Form for executing an arbitrary CVS command
*
* Copyright 2001 by Thomas Bleier
* For license details see LICENSE.txt
*)
unit TCvsCmdFrmunit;
{$I BORCVS.inc}
interface
//---------------------------------------------------------------------------
uses Classes,
Controls,
StdCtrls,
Forms,
ComCtrls,
TCvsBaseFrmUnit,
TRunCvsFrmunit,
TFilesFrameUnit, TCvsrootFrameunit;
//---------------------------------------------------------------------------
type
TCvsCmdFrm = class(TCvsBaseFrm)
PPageControl: TPageControl;
PTabCommand: TTabSheet;
PTabFiles: TTabSheet;
PCommand: TMemo;
Label1: TLabel;
PLastCmd: TComboBox;
Label2: TLabel;
PDirBtn: TButton;
PWorkDir: TComboBox;
PFilesFrame: TFilesFrame;
PCvsrootTab: TTabSheet;
PCvsrootFrame: TCvsrootFrame;
procedure FormShow(Sender: TObject);
procedure POkBtnClick(Sender: TObject);
procedure PLastCmdChange(Sender: TObject);
procedure PDirBtnClick(Sender: TObject);
private // Anwender-Deklarationen
protected
procedure GetDirectories(Dirs: TStrings); override;
procedure ApplyParameters(runcvs: TRunCvsFrm; InDirectory: string = ''); override;
public
constructor create(Owner: TComponent); override;
end;
//---------------------------------------------------------------------------
var
CvsCmdFrm: TCvsCmdFrm;
//---------------------------------------------------------------------------
implementation
uses
SettingsStorage,
sysutils,
dialogs,
FileCtrl;
{$R *.dfm}
// check SelectDirectory usage in all forms (use same variant)
//---------------------------------------------------------------------------
constructor TCvsCmdFrm.create(Owner: TComponent);
begin
inherited create(owner);
end;
//---------------------------------------------------------------------------
procedure TCvsCmdFrm.FormShow(Sender: TObject);
begin
PPageControl.ActivePage := PTabCommand;
ActiveControl := PCommand;
// load settings
try
BEGIN_LOAD_SETTINGS('CvsCommand');
LOAD_COMBOLIST_SETTING('WorkDir', PWorkDir, '');
LOAD_STRINGS_SETTING('LastCommands', PLastCmd.Items, '');
END_LOAD_SETTINGS;
except
end;
PCvsrootFrame.LoadSettings;
PFilesFrame.LoadSettings;
PFilesFrame.SetFilesFromProject(false);
end;
//---------------------------------------------------------------------------
procedure TCvsCmdFrm.POkBtnClick(Sender: TObject);
begin
if (Trim(PCommand.Text) = '') then
begin
ShowMessage('You have to enter a command!');
PPageControl.ActivePage := PTabCommand;
ActiveControl := PCommand;
exit;
end;
if (PWorkDir.Text <> '') and (not DirectoryExists(PWorkDir.Text)) then
begin
ShowMessage('The directory '' + PWorkDir.Text + '' does not exist!');
PPageControl.ActivePage := PTabCommand;
ActiveControl := PWorkDir;
exit;
end;
if (not PCvsrootFrame.IsValid) then
begin
ShowMessage('You have to enter the CVSROOT!');
PPageControl.ActivePage := PCvsrootTab;
ActiveControl := PCvsrootFrame;
exit;
end;
// handle MRU lists
ADD_COMBO_MRU_ENTRY_MAX(PWorkDir, DEFAULT_MRU_ENTRIES);
ADD_COMBO_TEXT_ENTRY_MAX(PLastCmd, PCommand.Lines.Text,
DEFAULT_MRU_ENTRIES);
// // save settings
BEGIN_SAVE_SETTINGS('CvsCommand');
SAVE_COMBOLIST_SETTING('WorkDir', PWorkDir);
SAVE_STRINGS_SETTING('LastCommands', PLastCmd.Items);
END_SAVE_SETTINGS;
PFilesFrame.SaveSettings;
PCvsrootFrame.SaveSettings;
ModalResult := mrOk;
end;
//---------------------------------------------------------------------------
procedure TCvsCmdFrm.ApplyParameters(runcvs: TRunCvsFrm; InDirectory: string = '');
var
cmdline: string;
i: integer;
begin
cmdline := '';
for i := 0 to PCommand.Lines.Count - 1 do
begin
cmdline := cmdline + ' ' + PCommand.Lines.Strings[i];
end;
runcvs.Command := cmdline;
if (PWorkDir.Text <> '') then
runcvs.WorkingDirectory := PWorkDir.Text;
PCvsrootFrame.ApplyParameters(runcvs);
PFilesFrame.ApplyParameters(runcvs);
end;
//---------------------------------------------------------------------------
procedure TCvsCmdFrm.PLastCmdChange(Sender: TObject);
begin
if (PLastCmd.ItemIndex >= 0) then
PCommand.Text := PLastCmd.Items.Strings[PLastCmd.ItemIndex];
end;
//---------------------------------------------------------------------------
procedure TCvsCmdFrm.PDirBtnClick(Sender: TObject);
var
dir: string;
begin
dir := PWorkDir.Text;
if (SelectDirectory(dir, [], 0)) then
begin
PWorkDir.Text := dir;
end;
end;
//---------------------------------------------------------------------------
procedure TCvsCmdFrm.GetDirectories(Dirs: TStrings);
begin
PFilesFrame.GetDirectories(dirs);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -