169 lines
6.3 KiB
ObjectPascal
169 lines
6.3 KiB
ObjectPascal
|
|
{********************************************************************}
|
|
{ }
|
|
{ Developer Express Visual Component Library }
|
|
{ ExpressEditors }
|
|
{ }
|
|
{ Copyright (c) 1998-2009 Developer Express Inc. }
|
|
{ ALL RIGHTS RESERVED }
|
|
{ }
|
|
{ The entire contents of this file is protected by U.S. and }
|
|
{ International Copyright Laws. Unauthorized reproduction, }
|
|
{ reverse-engineering, and distribution of all or any portion of }
|
|
{ the code contained in this file is strictly prohibited and may }
|
|
{ result in severe civil and criminal penalties and will be }
|
|
{ prosecuted to the maximum extent possible under the law. }
|
|
{ }
|
|
{ RESTRICTIONS }
|
|
{ }
|
|
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
|
|
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
|
|
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
|
|
{ LICENSED TO DISTRIBUTE THE EXPRESSEDITORS AND ALL }
|
|
{ ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
|
|
{ }
|
|
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
|
|
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
|
|
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
|
|
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
|
|
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
|
|
{ }
|
|
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
|
|
{ ADDITIONAL RESTRICTIONS. }
|
|
{ }
|
|
{********************************************************************}
|
|
|
|
unit cxShellBrowserDialog;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Controls, Forms,
|
|
cxShellCommon, cxSHellControls,
|
|
cxShellDlgs, cxShellBrowser, cxLookAndFeels;
|
|
|
|
type
|
|
{ TcxCustomShellBrowserDialog }
|
|
|
|
TcxCustomShellBrowserDialog = class(TComponent, IdxSkinSupport)
|
|
private
|
|
FDlg: TcxShellBrowserDlg;
|
|
FFolderCaption: string;
|
|
FLookAndFeel: TcxLookAndFeel;
|
|
FPath: string;
|
|
FRoot: TcxDlgShellRoot;
|
|
FShButtons: Boolean;
|
|
FShellOptions: TcxDlgShellOptions;
|
|
FShInfoTips: Boolean;
|
|
FShShowLines: Boolean;
|
|
FShShowRoot: Boolean;
|
|
FTitle: string;
|
|
procedure SetLookAndFeel(Value: TcxLookAndFeel);
|
|
protected
|
|
function CreateForm: TcxShellBrowserDlg; dynamic;
|
|
property FolderLabelCaption: string read FFolderCaption write FFolderCaption;
|
|
property LookAndFeel: TcxLookAndFeel read FLookAndFeel write SetLookAndFeel;
|
|
property Options: TcxDlgShellOptions read fShellOptions write fShellOptions;
|
|
property Path: string read fPath write fPath;
|
|
property Root: TcxDlgShellRoot read fRoot write fRoot;
|
|
property ShowButtons: Boolean read FShButtons write FShButtons default True;
|
|
property ShowInfoTips: Boolean read FShInfoTips write FShInfoTips default False;
|
|
property ShowLines: Boolean read fShShowLines write fShShowLines default True;
|
|
property ShowRoot: Boolean read FShShowRoot write FShShowRoot default True;
|
|
property Title: string read FTitle write FTitle;
|
|
public
|
|
constructor Create(aOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
function Execute: Boolean;
|
|
end;
|
|
|
|
{ TcxShellBrowserDialog }
|
|
|
|
TcxShellBrowserDialog = class(TcxCustomShellBrowserDialog)
|
|
published
|
|
property FolderLabelCaption;
|
|
property LookAndFeel;
|
|
property Options;
|
|
property Path;
|
|
property Root;
|
|
property ShowButtons;
|
|
property ShowInfoTips;
|
|
property ShowLines;
|
|
property ShowRoot;
|
|
property Title;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TcxCustomShellBrowser }
|
|
|
|
constructor TcxCustomShellBrowserDialog.Create(aOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
fShellOptions := TcxDlgShellOptions.Create;
|
|
fRoot := TcxDlgShellRoot.Create;
|
|
Title := '';
|
|
FShShowRoot := True;
|
|
FShButtons := True;
|
|
fShShowLines := True;
|
|
FLookAndFeel := TcxLookAndFeel.Create(Self);
|
|
end;
|
|
|
|
destructor TcxCustomShellBrowserDialog.Destroy;
|
|
begin
|
|
FreeAndNil(FLookAndFeel);
|
|
fRoot.Free;
|
|
fShellOptions.Free;
|
|
inherited;
|
|
end;
|
|
|
|
function TcxCustomShellBrowserDialog.Execute: Boolean;
|
|
var
|
|
vOc: TCursor;
|
|
begin
|
|
vOc := Screen.Cursor;
|
|
Screen.Cursor := crHourglass;
|
|
try
|
|
FDlg := CreateForm;
|
|
with FDlg do
|
|
begin
|
|
if Length(Title) > 0 then
|
|
DlgCaption := Title;
|
|
if Length(FFolderCaption) > 0 then
|
|
DlgFolderLabelCaption := FFolderCaption;
|
|
DlgOptions.ShowFolders := fShellOptions.ShowFolders;
|
|
DlgOptions.ShowToolTip := fShellOptions.ShowToolTip;
|
|
DlgOptions.TrackShellChanges := fShellOptions.TrackShellChanges;
|
|
DlgOptions.ContextMenus := fShellOptions.ContextMenus;
|
|
DlgOptions.ShowNonFolders := fShellOptions.ShowNonFolders;
|
|
DlgOptions.ShowHidden := fShellOptions.ShowHidden;
|
|
DlgRoot.BrowseFolder := fRoot.BrowseFolder;
|
|
DlgRoot.CustomPath := fRoot.CustomPath;
|
|
DlgShowButtons := ShowButtons;
|
|
DlgShowInfoTips := ShowInfoTips;
|
|
DlgShowLines := ShowLines;
|
|
DlgShowRoot := ShowRoot;
|
|
DlgFolder := fPath;
|
|
FDlg.LookAndFeel.MasterLookAndFeel := Self.LookAndFeel;
|
|
Result := ShowModal = idOk;
|
|
if Result then
|
|
fPath := FDlg.DlgFolder;
|
|
end;
|
|
finally
|
|
FreeAndNil(FDlg);
|
|
Screen.Cursor := vOc;
|
|
end;
|
|
end;
|
|
|
|
function TcxCustomShellBrowserDialog.CreateForm: TcxShellBrowserDlg;
|
|
begin
|
|
Result := TcxShellBrowserDlg.Create(Application);
|
|
end;
|
|
|
|
procedure TcxCustomShellBrowserDialog.SetLookAndFeel(Value: TcxLookAndFeel);
|
|
begin
|
|
FLookAndFeel.Assign(Value);
|
|
end;
|
|
|
|
end.
|