// Found this example in the article :
// "Property and Component Editors"
// at http://www.drbob42.com
unit FileName;
interface
uses
SysUtils, DsgnIntf;
type
TFileNameProperty = class(TStringProperty)
public
function GetAttributes: TPropertyAttributes; override;
procedure Edit; override;
end;
procedure Register;
implementation
uses
Dialogs, Forms;
function TFileNameProperty.GetAttributes: TPropertyAttributes;
begin
Result := [paDialog]
end {GetAttributes};
procedure TFileNameProperty.Edit;
begin
with TOpenDialog.Create(Application) do
try
Title := GetName; { name of property as OpenDialog caption }
FileName := GetValue;
Filter := 'All Files (*.*)|*.*';
HelpContext := 0;
Options := Options + [ofShowHelp, ofPathMustExist, ofFileMustExist];
if Execute then SetValue(FileName);
finally
Free
end
end {Edit};
procedure Register;
begin
RegisterPropertyEditor(TypeInfo(TFileName), nil, '', TFileNameProperty)
end;
end.