📄 tfileselectorfrmunit.pas
字号:
(* $Id: TFileSelectorFrmunit.pas,v 1.3 2002/12/27 16:22:43 turbo Exp $
*
* Base form for dialogs which have to select a file from a list of files
* in a combobox (like 'diff' and 'log' commands)
*
* Copyright 2001 by Thomas Bleier
* For license details see LICENSE.txt
*)
{
2002-12-19 Per-Eric Larsson
FOnlyFileNameasParameter added as protected and set to
false for compability - if set to true,
only filenames will be sent to when calling Applyparameters()
}
unit TFileSelectorFrmunit;
interface
{$I BORCVS.inc}
uses
Classes,
Controls,
StdCtrls,
dialogs,
Forms,
TRunCvsFrmunit,
TCvsBaseFrmunit;
//---------------------------------------------------------------------------
type
TFileSelectorFrm = class(TCvsBaseFrm)
Label3: TLabel;
PFiles: TComboBox;
procedure FormShow(Sender: TObject);
procedure POkBtnClick(Sender: TObject);
private
FFilesList: TStrings;
FOnlyFileNameasParameter: boolean;
protected
procedure HandleOK;
function GetFileNames: TStrings;
procedure ApplyParameters(runcvs: TRunCvsFrm; InDirectory: string = ''); override;
property OnlyFileNameasParameter: boolean read FOnlyFileNameasParameter write
FOnlyFileNameasParameter;
public
constructor create(Owner: TComponent); override;
destructor destroy; override;
property FileNames: TStrings read GetFileNames;
end;
//---------------------------------------------------------------------------
implementation
uses
Graphics,
sysutils;
//---------------------------------------------------------------------------
{$R *.dfm}
//---------------------------------------------------------------------------
constructor TFileSelectorFrm.create(Owner: TComponent);
begin
inherited create(owner);
FFilesList := TStringList.Create;
OnlyFileNameasParameter := false;
end;
//---------------------------------------------------------------------------
destructor TFileSelectorFrm.destroy;
begin
FFilesList.free;
inherited Destroy;
end;
//---------------------------------------------------------------------------
procedure TFileSelectorFrm.FormShow(Sender: TObject);
var
i, count: integer;
begin
PFiles.Items.Clear;
count := FFilesList.Count;
for i := 0 to count - 1 do
begin
PFiles.Items.Add(ExtractFileName(FFilesList.Strings[i]));
end;
PFiles.Enabled := FileNames.Count > 1;
if PFiles.Enabled then
PFiles.Color := clWindow
else
PFiles.Color := clBtnFace;
if (FileNames.Count > 0) then
PFiles.ItemIndex := 0;
end;
//---------------------------------------------------------------------------
procedure TFileSelectorFrm.HandleOK;
begin
if (PFiles.ItemIndex < 0) then
begin
ShowMessage('You have to select a file!');
ActiveControl := PFiles;
exit;
end;
end;
procedure TFileSelectorFrm.POkBtnClick(Sender: TObject);
begin
HandleOK;
end;
//---------------------------------------------------------------------------
procedure TFileSelectorFrm.ApplyParameters(runcvs: TRunCvsFrm; InDirectory: string = '');
var
p: integer;
begin
Debuginfo('ApplyParameters');
p := PFiles.ItemIndex;
if (p >= 0) then
begin
assert(p < FFilesList.Count);
if OnlyFileNameasParameter then
begin
runcvs.Arguments.Add(Extractfilename(FFilesList.Strings[p]));
end
else
begin
runcvs.Arguments.Add(FFilesList.Strings[p]);
end;
end;
end;
//---------------------------------------------------------------------------
function TFileSelectorFrm.GetFileNames: TStrings;
begin
result := FFilesList;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -