mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-27 04:53:39 +02:00
96 lines
1.9 KiB
ObjectPascal
96 lines
1.9 KiB
ObjectPascal
unit frmConfigFileBrowser;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes,
|
|
SysUtils,
|
|
FileUtil,
|
|
LResources,
|
|
Forms,
|
|
Controls,
|
|
Graphics,
|
|
Dialogs,
|
|
StdCtrls,
|
|
EditBtn,
|
|
ButtonPanel;
|
|
|
|
type
|
|
TStartDir = (sdProjectDir, sdLastOpened, sdCustomDir);
|
|
|
|
|
|
TFileBrowserConfigForm = class(TForm)
|
|
ButtonPanel1: TButtonPanel;
|
|
DEInitial: TDirectoryEdit;
|
|
GBStartDir: TGroupBox;
|
|
RBThisDir: TRadioButton;
|
|
RBLastDir: TRadioButton;
|
|
RBUseProjectDir: TRadioButton;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure SelectInitialDir(Sender: TObject);
|
|
private
|
|
function GetCustomDir: string;
|
|
function GetStartDir: TStartDir;
|
|
procedure SetCustomDir(const AValue: string);
|
|
procedure SetStartDir(const AValue: TStartDir);
|
|
public
|
|
property StartDir: TStartDir read GetStartDir write SetStartDir;
|
|
property CustomDir: string read GetCustomDir write SetCustomDir;
|
|
end;
|
|
|
|
var
|
|
FileBrowserConfigForm: TFileBrowserConfigForm;
|
|
|
|
implementation
|
|
|
|
{ TFileBrowserConfigForm }
|
|
|
|
procedure TFileBrowserConfigForm.SelectInitialDir(Sender: TObject);
|
|
begin
|
|
DEinitial.Enabled := RBThisDir.Checked;
|
|
end;
|
|
|
|
procedure TFileBrowserConfigForm.FormShow(Sender: TObject);
|
|
begin
|
|
SelectInitialDir(nil);
|
|
end;
|
|
|
|
function TFileBrowserConfigForm.GetCustomDir: string;
|
|
begin
|
|
Result := DEinitial.Directory;
|
|
end;
|
|
|
|
function TFileBrowserConfigForm.GetStartDir: TStartDir;
|
|
begin
|
|
if RBUseProjectDir.Checked then
|
|
Result := sdProjectDir
|
|
else if RBLastDir.Checked then
|
|
Result := sdLastOpened
|
|
else
|
|
Result := sdCustomDir;
|
|
end;
|
|
|
|
procedure TFileBrowserConfigForm.SetCustomDir(const AValue: string);
|
|
begin
|
|
DEinitial.Directory := AValue;
|
|
end;
|
|
|
|
procedure TFileBrowserConfigForm.SetStartDir(const AValue: TStartDir);
|
|
var
|
|
RB: TRadioButton;
|
|
begin
|
|
case AValue of
|
|
sdProjectDir: RB := RBUseProjectDir;
|
|
sdLastOpened: RB := RBLastDir;
|
|
sdCustomDir: RB := RBThisDir;
|
|
end;
|
|
RB.Checked := True;
|
|
end;
|
|
|
|
{$R *.lfm}
|
|
|
|
end.
|
|
|