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

📄 tfileselectorfrmunit.pas

📁 CVS IDE plugin for Borland Delphi this is a good program,i like this kind of practise
💻 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 + -