mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-30 05:21:38 +01: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.
 | |
| 
 | 
